Description
If following conditions are met, user will experience Harvest client hanging when executing any server side UDP (linked or stand alone).
- The Harvest client was used to execute a server side UDP (pre/post linked or standalone).
- Harvest server is on a UNIX host.
- Harvest is using Oracle 10g for database.
- Both Harvest server and Oracle server processes are running on the same UNIX host.
- Harvest was not configured to use TNS to connect to Oracle (The service name option of the ODBC DataSource Name (DSN) used to connect to Oracle is blank)
- Oracle's Bequeath Detach option is not turned ON.
Solution
There are two options to choose to resolve this particular problem.
Below are the detailed steps including pros/cons for each option:
Option One:
This option affects all the Oracle applications (ex: Harvest) utilizing the database installation's configuration file that's being modified.
- Edit the $ORACLE_HOME/network/admin/sqlnet.ora file.
- Search for entry BEQUEATH_DETACH.
- If it exists, make sure its set to "YES". Example: BEQUEATH_DETACH=YES
- If it doesn't exist, create a new line and set it to:
BEQUEATH_DETACH=YES
- Save and close the file.
- Stop the Harvest Broker process (which in turn shuts down HServers).
- Stop any other applications (ex: Harweb) that are connected to Oracle database above.
- Stop and restart Oracle database.
- Restart Harvest Broker.
- Test the server-side UDP which caused the previous Harvest Client hang situation.
Option Two:
This option only affects Harvest and the way it connects to the Oracle database. This option is going to introduce another layer of communication (TNS protocol layer) between Harvest Server and Oracle database. This may cause some performance impact, though not significant.
- Identify the TNS Alias/Service-Name that your Harvest Broker Unix node can use to connect to the Oracle database. Contact your DBA for this if needed.
- Stop the Harvest Broker process (which in turn shuts down HServers).
- Stop any other applications (ex: Harweb) that are connected to Oracle database above.
- Login to the Harvest Broker Unix node as the user who installed Harvest. This user needs to have proper write privileges to the files in the $ODBC_HOME directory. You can obtain the location of $ODBC_HOME by executing below commands at the UNIX prompt:
- 'grep odbcenv.sh $HARVESTHOME/bin/hserver' # notice back tick characters here.
- echo $ODBC_HOME
- On UNIX prompt, change to $HARVESTHOME/bin directory.
- Invoke the Harvest database configuration utility by executing ./hdbsetup
- Database configuration prompt appears and you'd be prompted to select the DBMS type.
- Specify the database type as O for oracle.
- Then choose the co option for configure ODBC DSN.
- Then provide the name of the existing Harvest DSN name that you'd like to reconfigure (This should be already listed out here. However, if there are multiple DSNs listed here, you can obtain the one that Harvest Server uses by doing: grep datasource $HARVESTHOME/HServer.arg).
- Choose to overwrite the existing DSN.
- When prompted for service name, provide the Oracle TNS service name (you collected this in Step (1) above).
- In the next step confirm the changes.
- If you want you can go ahead and select the Test driver connection option and verify connectivity between Oracle and Harvest using this newly configured DSN.
- Restart Harvest Broker and other processes (ex: Harweb).
- Test the server-side UDP which caused the previous Harvest Client hang situation.