SQL Exception: Unable to insert null into process_template
June 21, 2011 5 Comments
This is an old foe that has reared its ugly head again at my client’s.
One of the coding standards we have in place states that in a BPEL process, invoke activities must catch their corresponding interface faults, and if necessary throw a process specific fault to be caught at the top level of the BPEL.
A developer was very diligent following this standard, which is good news, but he forgot to populate the namespace of the fault he was throwing.
Version 7 does this for you, which is neat, but in v6 if you don’t specify the namespace as in the image below, it will be left empty.
If you leave the fault namespace blank, the process might not behave as expected, but it will deploy and start on your integrated test environment.
However, when deployed to a real environment using Oracle as the persistence mechanism this process will not start.
Enabling detailed trace on the server (com.ibm.bpe.*=all) revealed a rather terse ORACLE SQL EXCEPTION: UNABLE TO INSERT NULL into PROCESS TEMPLATE(null,tempalteId,).
Only ‘thanks’ to past experience and recollection I was able to diagnose and correct the problem.