Troubleshooting
Problem
A throw activity with an empty fault namespace that is defined in WebSphere Integration Developer V6.1 or later can cause an application startup failure when WebSphere Process Server uses an Oracle database
Symptom
The information contained in this document has been moved to developerWorks Answers located here. This technote will be archived in 60 days. Please bookmark the new location.
The following error is displayed in the FFDC logs:
------Start of DE processing------ = [31/05/10 15:34:43:937 EDT] , key =java.sql.SQLException
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate 807
Exception = java.sql.SQLException
Source =
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate
probeid = 807
Stack Dump = java.sql.SQLException: ORA-01400: cannot insert NULL into
("WPSBPE_2"."URI_TEMPLATE_B_T"."URI")
at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:11
2)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:676)
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:602)
at
oracle.jdbc.driver.T2CPreparedStatement.executeForDescribe(T2CPreparedSt
atement.java:571)
at
oracle.jdbc.driver.T2CPreparedStatement.executeForRows(T2CPreparedStatem
ent.java:764)
at
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.
java:1190)
at
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepare
dStatement.java:3370)
at
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedS
tatement.java:3454)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdb
cPreparedStatement.java:1098)
at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPr
eparedStatement.java:765)
at com.ibm.bpe.database.UriTemplateB.insertDb(UriTemplateB.java:554)
at com.ibm.bpe.database.Tom.beforeCompletion(Tom.java:1369)
at
com.ibm.bpe.admin.AdminService.installProcessComponent(AdminService.java
:342)
at
com.ibm.bpe.management.application.process.ProcessApplicationManager.ins
tallApplication(ProcessApplicationManager.java:183)
at
com.ibm.bpe.management.application.process.ProcessApplicationManager.exe
cutePendingDBUpdates(ProcessApplicationManager.java:550)
at
com.ibm.bpe.framework.ProcessContainer.applicationMayStart(ProcessContai
ner.java:970)
at
com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(Applica
tionMgrImpl.java:895)
at
com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(Appli
cationMgrImpl.java:2124)
at
com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(W
sComponentImpl.java:342)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1497)
Dump of callerThis =
Object type = com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement
Cause
When working with a throw activity to throw a fault (that might be internal to a process), you might choose to use a fault without a namespace. However, Oracle databases treat an empty string as a NULL value. When the database column is specified with a 'NOT NULL' constraint, the 'cannot insert NULL' error might occur because the fault does not have a namespace.
Environment
This problem occurs only when WebSphere Process Server uses an Oracle database.
Diagnosing The Problem
In the FFDC log file, look for the following error:
java.sql.SQLException: ORA-01400: cannot insert NULL into xxxx
Resolving The Problem
In WebSphere Integration Developer, provide a namespace for each throw activity in your business process if you are using Oracle as your WebSphere Process Server database. In general, when using Oracle as your WPS database, try to abstain from empty namespaces.
Related Information
Historical Number
46687;057;649
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21433700