I must admit, I haven’t seen that particular error myself. I can try to replicate it but before I do, let me ask this: do you have the ability or permission to change the logging framework itself?
I ask because one thing that you would benefit from tremendously is making the framework asynchronous via messaging. By that I mean, instead of calling a framework service that performs a database insert, your framework service should publish a message to your messaging system (e.g. UM). A subscriber would then be responsible for picking up the message and writing it to the database. This approach has a number of advantages:
(1) It eliminates the issue you’re dealing with
(2) It speeds up your main services because, typically, publishes are faster than DB inserts
(3) It safeguards you against issues when the database is down (i.e. instead of losing your log message, your trigger can automatically retry it until the database is back up)
(4) It opens the door for you to introduce other subscribers (e.g. in addition to logging to the database, perhaps you want to send an e-mail if the attribute ‘level’ of the message is set to ‘error’, etc).
So, if you have the ability to make those changes, I would encourage you. If you don’t, then one thing you can try is to get rid of the startTransaction, commitTransaction, and rollbackTransaction calls. If I recall correctly, the IS will handle transactions properly when dealing with a LOCAL_TRANSACTION and a NO_TRANSACTION connection within the same context. I haven’t tried this personally in a while because, like I said, I typically try to decouple scenarios like this via async messaging.
Percio
#webMethods#Integration-Server-and-ESB#Adapters-and-E-Standards