Monday, February 06, 2006

PublishMessageException - A batch item failed persistence

I recently had to debug one of the errors for a buddy of mine and it take me some time to fix it ,It was quite intersting and i thought was worth noting down

You get the Error below


--------------------------------------------------------
Event Type: Error
Event Source: XLANG/s
Event Category: None
Event ID: 10034

Description:
Uncaught exception terminated service Biztalk.Reusable.FileMover.FileMoveOrch(edf0c1f0-c242-60c9-5b56-41ab42b9ee5d), instance e756bd88-5966-48f9-be40-8a55451d2bf4

Exception occurred when persisting state to the database.

Exception type: PersistenceException
Source: Microsoft.XLANGs.BizTalk.Engine
Target Site: Void Commit()
Help Link:
Additional error information:

A batch item failed persistence Item-ID f64a095a-eed6-451c-86ee-9aac941b935b OperationType MAIO_CommitBatch Status -1061151998 ErrorInfo The published message could not be routed because no subscribers were found. Please use the Health and Activity Monitoring (HAT) tool to diagnose this situation. .

--------------------------------------------------------

There are a couple of things you should check
1.) Is the Orchestration and all corresponding objects send ports started
2.) Is Biztalk 2004 Service Pack Installed
3.) Is your Orchestration Calling another Orchestration whihc is not started
4.) Are you using Dynamic Send Ports , If yes are you setting the Address location
Microsoft.XLANGs.BaseTypes.Address properly


In the problem I was debugging, the value of this variable was set from an external call to a .net function and this value was not properly intitalized.

Fixing the function and regacing solved the issue.

2 comments:

shai said...

hello what is you e-mail. the one on the blog site is not working

hung said...

This bug also can be caused by an error that is hard to detect.
Let say you send a message to a sql stored proc.

The request xml and response xml is normal. Count 1 and 1.
If you somehow construct the request that has a loop in it.
By loop I mean repeating structure node.
When that happen biztalk confuses.
But cause you send a BATCH of request and the orchestration only expect one response.
Fix the loop to have only one node.