Problem Publishing doc from B2B to Enterprise

Hi,

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

why don’t you save the XML from B2B on the file server and let Enterprise poll the file

Suraj,
Thanks for advice, but I trying to understand why I have the added delay in only the production environment and not in the other 2 environments. The WmEnterprise package from WM is the tool they built to communicate between B2B and Enterprise and it works to suit my needs except for this 1 environment. Also, I suspect the approach you suggest with the write to a file, and a polling interval on a File/IO adapter would be just as much time as the delay I have now. Again, thanks for the suggestion.

Can anyone shed some light on this issue, we are seeing a 20 second delay in our development environment. We are wondering where this comes from ?

Ray

Ray, what version of webMethods? The pre-4.6 bridge had a lot of performance issues, so that could be your problem.

We are running 4.6

Our experience btw is that we do not have any problems with our test and production environments. (we would like to keep it that way)

And we think we see variations we have had no delay a while back on development, but this week we are seeing the 20second delay.

Ray

The issues w/ the 4.6 B2B Server Bridge Adapters are well known. I’ve seen specific instances of problems occurring when events from multiple sources were synchronously moving through the adapter.

One option to overcome this is to utilize the Broker Package 4.7 from the wM Global Field Adapter program ([url=“http://advantage.webmethods.com/cgi-bin/advantage/main.jsp?targChanId=-536883368”]http://advantage.webmethods.com/cgi-bin/advantage/main.jsp?targChanId=-536883368[/url]). I have no experience with it, however, and cannot attest to its effectivity.

The other option is to a) For your Adapter to B2B communication – invoke the B2B APIs (client.jar) from within a custom script step in the Enterprise Integrator; and b) For your B2B to Broker communication – create a Broker Client by using the Broker APIs (client45.jar or clientxx.jar, depending upon your broker version) from within a custom Java class in the B2B Developer. Implementation of this approach is too detailed to go into; so, you’ll obviously need to do some research into these APIs and have some JAVA programming skills. I’ve had great success with this Server Bridge “work around”. It eliminated all event latency between the Broker and IS and is definitely worth the effort.

Hi,

We are developing Interface using webMethods4.6. We are using Broker Package version 4.7. webMethods receive XML from source Application which invokes a service on IS, after manipulation, the document needs to be published to Broker. For publishing document to broker, Document Type is required to be created on Broker. I've imported XML into Integration server, but when I try to create Document type on Enterprise server using WMEnterprise utility, its erroring out saying ES doesnt support characters above 009F. The Enterprise Server does not support field names containing the XML characters (i.e., @ *) that are in Integration Server services or records. Removing the * and @ from record on IS manuallyis one option but in case record is too big then it would be a problem. In Broker Package 4.7 release notes its specifically written that to get this capability we need to contact webMethods Customer Care. Did anybody earlier contacted customer care and got the solution, can anyone please help me on this. 

Thanks