Hello,
I created a small test application that emulates the way a real application works with the Oracle DB (using multiple transaction objects). After I'd deployed it to PowerServer and run it, I got an error message "Connection request timed out" in SQLErrText of a transaction object after calling the connect statement. I'm a little lost as to how to troubleshoot this.
I may guess that it's either that the webserver can't connect to the Oracle server or that there's something wrong in my transaction to cache mappings. But I don't really know how to test that the webserver can connect to the Oracle DB using the data I entered in the cache definition. It's a clean PC with no Oracle client installed, so I can't use the usual tnsping/sqlplus checks. Besides, that wouldn't help understanding whether the webserver can connect using the Oracle .NET Core driver and the data from the cache settings. Could someone suggest how to do this before looking into transaction to cache mapping?
Best regards,
Konstantin
It should not matter what Transaction object name your application uses. The key concept here is that PowerServer maps all DBMS / DB Instance access via it's "CacheName" setting in the PS project. Therefore, your PB App transaction objects should *always* set this mapping their TRansaction Objects DBParm filed as follows....
For example: <MyTrans>.DBParm="CacheName='mycache'"
Following this rule, PS will ignore the Transaction Object name and just concentrate on the CacheName mapping - which should always be used to ensure proper DBMS / DB instance redirection in the middle tier.(IMHO). Just my $0.02 HTH
Regards .. Chris
It's an interesting thought. I was hoping to get by with a static mapping so that I don't have to change all the places where transaction objects are created and initialized. Is this setting ignored by a traditional C/S application? (I seem to be very bad at using PS Help: I can't find answers to my questions there...)
I'm also trying to figure out an easy way of switching a client app between different databases (dev, test, different production instances). All I have found so far involves changes on the server side...
Regards,
Konstantin
That is exactly whet the CacheName setting is used for ... SQLCA.DBParm="CacheName='mydbcache'"
Where "mydbcache" value changes by the production DB instance that you need to have PS server connect to for a specific App user. ;-)
Regards .. Chris