We run WebMethods B2B 4.0.1 and Enterprise Server 4.1.1 on Solaris 2.8 environment. We run the WmEnterprise Package vers. 2.0 along with the B2BServerBridge Enterprise Adapter to link B2B and Enterprise, but we use it in a unique way developed for us by our webMethods Professional Services guys at the beginning of our project to get around a problem with the field names in our canonical documents that contained illegal characters for Enterprise Document field names.
Our Canonical document structures are based on OAG 7.1 XML messages defined from the DTD’s imported into B2B. These are the Documents we publish from B2B to Enterprise Broker Server. WM Professional Services built a custom wrapper JAVA service for the WmEnterprise package that dynamically renames elements of our B2B record structure (changing special characters like @,*, . ) in the names to match the Enterprise Document names, then directly calls wm.enterprise.Admin.PublishDocument to publish the modified document to the Broker Server. The WmEnterprise package was not used to create any Flows, only to define the broker alias. So, if you list the Flows or documents for a given Alias, there are none displayed.
In all our development/test environments, B2B and Etnerprise servers live on the same host and the performance of publishing a document from B2B to Enterprise is only a couple of seconds.
However, in our production environment, B2B Server 4.0.1 lives on a different host than Enterprise Server. In this production environment we consistently (always) see performance of 60 seconds to publish a document to Enterprise and can’t seem to find the reason why.
We have had this problem for quite a while but volume of documents published has increased to the point that this performance (poor throughput) is killing us.
Initial attempts to resolve this problem have centered around the difference between test and production, i.e. the separate server. Tests have shown that establishing TCP connections between these hosts is subsecond, simillarly packet round trip time with ping is almost nothing. We eliminated DNS name resolution by plugging in the IP address of the Broker Server directly in the ALIAS instead of using broker host name.
To me 60 seconds is a long time and there must be some timeout occurring, not actually processing or network time.
The broker names and Alias names are different in every environment . However in all environments min Clients in the pool is set to 1 and max is 10.
We are trying to publish to the Broker, not use request reply. In the calls to wm.enterprise.Admin.PublishDocument we pass in a BROKERID (alias name), REQUESTDOCNAME, our document to be published in the “inRec” structure and a TIMEOUT=60000 . REPLYDOCNAME is left “null” and the publish always succeeds , never get an error back or exception thrown, but it always takes 60 seconds. This TIMEOUT=60000 sounds suspious but it is this way in all environments yet the problem only exists in production.
I know when I upgrade to newer release of everything like 6.0 that the problem is guaranteed to change or go away. I don’t have resources to do that quickly, so I’m asking for help to solve this problem in this release if possible. Or at least understand it.
I don’t know where the Broker Alias definitions live, I was looking for a file called brokerscfg.xml under all of my packages but didn’t find one. If anyone can tell me that it would help also.
Also, any discussion about how the WmEnterprise package works under the covers of the service, in terms of connection pools, keepalives, timeouts etc that might have bearing on this delay we see would be greately appreciated. For example, if we were using the package as described in the manual to generate the FLOW Services that publish to the Broker, how would that change the calls to wm.enterprise.Admin.PublishD