Support Article

Issue with Database instace after JVM restart

SA-36885

Summary



The user is using Pega 7.2.2. to connect to an external database for which the data source has created a new database instance and pointed to the data source using JNDI. However, after every JVM restart, this database instance goes out of scope and Pega is unable to connect to the external database until they manually open the database instance rule configured in Pega to connect to external database and re-save it again. The user observes this to occur in both Pega 7.2.1 and Pega 7.2.2


Error Messages



2017-03-22 07:34:48,035|[ server.startup : 0]|[ ]|[ ]|[ ]|(com.pega.pegarules.data.internal.access.DataSourceManager)|ERROR ||| - Unable to obtain DataSource for extdb; javax.naming.NameNotFoundException: Name "comp/env/jdbc/EXTDB" not found in context "java:".
2017-03-22 07:34:48,037|[ server.startup : 0]|[ ]|[ ]|[ ]|(com.pega.pegarules.data.internal.access.ConnectionManagerImpl)|ERROR ||| - Failed to read Data-Admin-DB-Name Definitions: Database-BadDBDef-Missing Unable to obtain DataSource object


Steps to Reproduce

  1. Configure a data source on Websphere to connect to an external database.
  2. Create a DATA-ADMIN-DB-NAME instance in Pega 7.2.2.
  3. Select "use JDBC Connection Pool" option and provide the JNDI name for the configured data source in Websphere.
  4. Restart the JVM and verify if Pega is able to connect to the configured external database.


Root Cause



A defect or configuration issue in the operating environment is identified as root cause of the issue. The user has edited prconfig.xml file to add the data source related information. No change is required in prconfig.xml. Pega should be able to connect to external data source once the configuration for data source and namespace bindings related to data source are created in Websphere. The connection to external database is handled by Websphere. Pega just uses the configured JNDI information to connect to external database.

Resolution



Make the following change to the operating environment:
  • Go to Websphere Console > Resources > JDBC > Data sources and configure a Data Source instance in Websphere for connecting to the external database. Screenshot of an example showing Data Source configuration in Websphere is shown below:
  • Go to Websphere Console > Naming > Name space bindings and configure "Name space bindings" instance in Websphere required for connecting to the external database. Screenshot of an example showing Name Space Bindings configuration in Websphere is shown below:
  • No changes are needed in prconfig.xml file.
  • Create a DATA-ADMIN-DB-NAME instance in Pega and Select "use JDBC Connection Pool" option and provide the JNDI name for the configured Data Source in Websphere.

Published April 21, 2017

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.