You said you created a single-threaded test application.
What happens if you create two of them, and make one sleep before doing the select. While it is sleeping, start the second test program without the sleep. If the second program completes, and after, when the first program wakes up, it completes its open/select/close sequence without error, you have proven that the jadabas jar is thread safe (at least in this case).
If this is the case, you only need to create a new object instance in your Java service to perform the interaction with jadabas. So after getting your data out of the pipeline, your Java service would do something like [ new MyClass(parm1,parm2).talkToAdabas() ]. Needless to say, in MyClass, the variables that store your connection info from Jadabas should not be static!
I’ve seen the Integration Server get locked up in handling synchronization of it’s own threading. Try not to add to this risk with your own code.
#webMethods#Integration-Server-and-ESB#Flow-and-Java-services