Dynamic Adapter Service


We have 4 identical Oracle databases which we need a JDBC adapter to connect to. However in our flow we want to use the same JDBC Adapter service. Is there a way to do this by having the adapter service pick the appropriate adapter connection on the fly?

Any ideas/suggestions welcomed!


I’m not so sure but i think the latest JDBC Adapter has this feature.Read the documentation.


Which JDBC adapter, the 6.0.3? I did not see any built-in services in that wmJDBCAdapter package to do this? Can you elaborate pls?

Eric ,

From IS 6.1, built-in services setAdapterServiceNodeConnection and
setPollingNotificationNodeConnection and are provided in the WmART package at design time to change the connection associated with an adapter service or notification.

I think from IS 6.5 you may run a service using a connection other
than the default connection,in flow service by passing a value through the pipeline into a service’s $connectionName field.(For Siebel integration)

Regards ,

I think webMethods doesn’t recommend to use setAdapterServiceNodeConnection and setPollingNotificationNodeConnection within the flow services. You can use the above services to run manually to change the connection from one instance to the other.


I agree with satya,yes those services were used for manually change of connection instances to avoid delete and rework of creating new connections in each pacakge.But i am not sure if we can use them dynamically pass connectionname inside flowservices.


Using the $connectionName field in AdapterService in wM 6.5 will solve this issue for me. However we are still at 6.1. Thanks for your inputs. Appreciate it.


I did have similar requirement and the solution that we applied was totally different, but I think quite interesting to consider.

What we did was to create another database, which the JDBC Adapter would be permanently connected to. There was no adapter connection switching on IS. Instead the database, to which JDBC Adapter was connected, had DB links configured to connect to the target databases. We had 10 of them (all identical as in your case), hence 10 db links.
Apart from the DB links there were stored procedures, which would build SQL statements dynamically and run them against the right target database (the SQL syntax to do it is dbObject@dbLink, for example INSERT INTO MYTABLE@DBLINK1). The target database against which the given statement was issued was passed as the parameter to the stored procedure.

This was working without any problem, however from architecture standpoint this solution was more DB than IS based.

An interesting approach to use db links. However as pointed out earlier in this thread, starting in wM 6.5, an adapter service call has a input pipleline parameter called $connectName, which you can use on the fly in your flow service to specify the connection to be used.

Also note, since its the adapter connections which manage db pools, selecting any connection on the fly will not have any adverse effect on it.

Meanwhile, in 6.1, we have designed a dynamicMap Java service as follows:
a) We pre-defined 4 adapter services pointing to 4 databases.
b) The dynamicMap java service uses a PSUtilities package service called doInvoke(), which allows it to call the appropriate adapter service on the fly.

Thanks all!


I am a junior consultant using webmethods. I am searching for the $connectName. Can somebody give me some information about this item an also tell me how to use this?



The $connectionName is an input parameter in the pipeline, available after you create an adapter service and use it inside a flow. This is only available in version 6.5 and above.