BizTalk MQSeries Adapter COM+ Error 80004005

When connecting BizTalk to Websphere MQ, you can choose between two options:

  • MQSC adapter (Client based)
  • MQSeries (Server based)

My current client chose to use the MQSeries adapter to connect to Websphere MQ. The core of this adapter is a COM+ component running on the BizTalk server which will handle all processing.

ISSUE

Normally, all processing runs smoothly. But sometimes, when executing a new installation of an application on BizTalk, we started receiving the following error-message:“Retrieving the COM class factory for remote component with CLSID {} from machine xx failed due to the following error: 80004005”Also, we noticed that all messages that were sent to the MQSeries adapter, were staying in status Started with the same error. All processing was gone and nothing was going to or coming from MQ.

When first checking the running component, we didn’t see anything weird. Everything was running fine. We looked into the issue for quite some hours but didn’t find anything that was causing the problems.

SOLUTION

The problem itself lays in the fact that the COM+ component can recycle itself but that the recycle doesn’t work properly. So we don’t see any “extra” failing instances of the component but things change when we boot up the process explorer:

We see two instances of the component! We can tell this for sure since the MQSAgent2 is the only thing running under this specific account (check the properties of a process – right click – properties). So there is an instance running correctly, but an old one, which isn’t visible in the running, processes on the Component Services, but still present in the windows processes. This faulty component is still taking in all the incoming requests.Only thing to figure out now is the process id of the component that is currently running. This process id is visible in the components mmc.

It’s now just a matter of killing the other component to resolve the issue.

EXTRA

The other measure we took to avoid extra downtime of the environment was raising the pool size of the component. This means that when a component starts to recycle another component is started which will automatically take in all the new requests while the other is still recycling. This can be set in the properties of the component.Any questions can be put in the comments, or you can contact me through twitter directly.

Andrew De Bruyne (Twitter: @draitnn)

blogger

blogger

Curious to know more about this topic?

Working at i8c

i8c is a system integrator that strives for an informal atmosphere between its employees, who have an average age of approx 30 years old. We invest a lot of effort in the professional development of each individual, through a direct connection between the consultants and the management (no multiple layers of middle management). We are based in Kontich, near Antwerp, but our customers are mainly located in the triangle Ghent-Antwerp-Brussels and belong to the top 500 companies in Belgium (Securex, Electrabel, UCB, etc…).

Quality Assurance

i8c is committed to delivering quality services and providing customer satisfaction. That’s why we invested in the introduction of a Quality Management System, which resulted in our ISO9001:2000 certification. This guarantees that we will meet your expectations, as a reliable, efficient and mature partner for your SOA & integration projects.

i8c - ISO9001-2015

Also worth reading

AWS AppFlow: Streamlining SaaS Integrations with AWS Services

In today’s digital world, organizations are constantly looking for ways to streamline their workflows and improve their data management processes. One of the key challenges that organizations face is integrating their various software as a service (SaaS) applications with their data management systems. This is

Read More »

Apigee Scope Validation using OpenAPI Specification

In API security and management, we often use a lot of different security mechanisms to protect the requested resource behind the API Gateway. One of these mechanisms is the validation of scopes to authorize a client on a specific sub-resource of the API. Most of

Read More »