Troubleshooting
Problem
After upgrading the Oracle jdbc drivers for WebSphere 7 an error repeats in the FileNet Content Engine Logs.
Symptom
Error code FNRCE0226E repeated in the Content Engine p8_server_error.log and p8_server_trace.log. Full error is as follows:
FNRCE0226E - ERROR method name:determineDatabaseType principal name: UserX Global Transaction: true User Transaction: false Exception Info: The database vendor cannot be determined from the JNDI DataSource or is of an unsupported type. Check the data source and verify the database connection. com.filenet.api.exception.EngineRuntimeException: DB_BAD_DATABASE_VENDOR: The database vendor cannot be determined from the JNDI DataSource or is of an unsupported type.Check the data source and verify the database connection.
Cause
Change of Oracle jdbc drivers for the P8 WebSphere environment. This resulted in the WebSphere Transaction and Partner logs getting full.
Diagnosing The Problem
Reviewing the Content Engine error logs shows the following break down.
The key words are in the error message:
"Caused by: com.ibm.ws.recoverylog.spi.LogFullException"
and
"at com.ibm.tx.jta.PartnerLogData.logData(PartnerLogData.java:244) at com.ibm.tx.jta.PartnerLogData.logRecoveryEntry(PartnerLogData.java:168)"
The error:
2011-11-17T02:14:45.244Z 79FD79FD ENG FNRCE0226E - ERROR method
name:determineDatabaseType principal name: m37382 Global Transaction: true User Transaction: false Exception Info: The database vendor cannot be determined from the JNDI DataSource or is of an unsupported type. Check the data source and verify the database connection. com.filenet.api.exception.EngineRuntimeException: DB_BAD_DATABASE_VENDOR: The database vendor cannot be determined from the JNDI DataSource or is of an unsupported type.Check the data source and verify the database connection.
Resolving The Problem
The most immediate solution is:
1. Stop all IBM WebSphere instances used by this FileNet environment.
2. Delete the tran and partner logs.
- location of the log files:
<profileName>/tranlog/.../transaction
/partnerlog
/log1
/log2
/tranlog
/log1
/log2
WARNING : https://developer.ibm.com/answers/questions/168147/system-inconsistency-due-to-deleted-transaction-or.html
Alternative solutions:
- Increase the size of the logs from the default of 1mb.
1. In the administrative console, click Servers
2. Server Types
3. WebSphere application servers
4. server_name. The properties of the application server, server_name, are displayed in the content pane.
5. Click [Container Settings] Container Services
6. Transaction Service . The Transaction Service settings page is displayed.
7. Ensure that the Configuration tab is displayed.
8. Optional: To change the directory in which transaction logs are written, type the full path name of the directory in the Transaction log directory field. Check the current runtime value of Transaction log directory by clicking the Runtime tab.
9. When the WebSphere Application Server is used without high availability support, the recovery log configuration does not need to be set for persistent services such as the transaction service. The application server assumes a default location in the appropriate profile directory. When high availability support is enabled, this default might not be visible from all servers in the cluster (for example, if the servers are in different profiles or physical nodes). Because of this behavior, configure the recovery log location for each server in the cluster before enabling high availability. Ensure that each server in a cluster has a unique transaction log directory, so that multiple servers do not attempt to access the same log file. Also, ensure that each server in a cluster can access the transaction log directories of the other servers in the cluster. In a high availability (HA) environment, both the transaction log and the compensation log directory for each server in a cluster must be unique.
Note: If you change the transaction log directory, apply the change and restart the application server as soon as possible, to minimize the risk of problems occurring before the application server is restarted. For example, if there is a problem and the server fails with in-flight transactions, when the server restarts, it uses the new log directory and cannot automatically resolve in-flight transactions that were recorded in the old log directory.
You can also specify a size for the transaction logs, as described in the following step.
10. Optional: To change the size of transaction log files, modify the Transaction log directory field to include a file size setting. Use one of the following formats, where directory_name is the name of the transaction log directory and file_size is the disk space allocation for the transaction log files, specified in kilobytes (nK) or megabytes (nM). The minimum transaction log file size that you can specify is 64K. If you specify a value that is less than 64K, or you do not specify a value for the file size, the default value of 1M is used.
example: In the field 'Transaction log directory' enter ';2m' for 2 megabytes. (without the encapsulation of the single 'quotes' so just ;2m).
11. Save your changes to the master configuration.
12. Recycle WebSphere jvm's.
- Removing entries from the transaction partner log
1. Entries can be removed from the transaction partner log file. To do this, set the REMOVE_PARTNER_LOG_ENTRY custom property for the transaction service on the server that owns the partner log.
About this task
As part of the transaction recovery process, the partner log is checked to establish which resources are needed. If you want to remove certain entries from the partner log, such as a resource that no longer exists, set this custom property on the application server that owns the transaction partner log containing the entries you want to remove.
2. The REMOVE_PARTNER_LOG_ENTRY custom property is effective only when both of the following situations apply.
The application server is started in recovery mode.
The application server has no transactions that currently require recovery. You can establish this by checking the SystemOut.log file.
Procedure:
3. In the administrative console, click Servers
4. Server Types
5. WebSphere application servers
6. server_name > [Container Settings] Container Services
7. Transaction Service
8. [Additional Properties] Custom Properties.
9. Click New. Type REMOVE_PARTNER_LOG_ENTRY in the Name field, and in the Value field, type one or more comma-delimited integer recovery IDs to be removed.
10. Click Apply or OK.
11. Save your changes to the master configuration.
12. Restart the server in recovery mode.
Was this topic helpful?
Document Information
Modified date:
17 June 2018
UID
swg21574630