Unreleased Segment Problem in SAP

For some standard IDOC, Sometimes, SAP team would hesitate to release all the segments due to maintenance overheads,

On the BizTalk side, To enable us to work with these Idoc’s we need to follow the below steps:

In the importing of the schema
Change the properties: GenerateFlatFileCompatible, ReceiveIdocFormat and FlatFileSegmentIndicator
Add the extension Flat File Extension to the schema generated

In the configuration of the receive port
Change the handling of the message body to a specific XPath
Use a pipeline with a Disassemble stage configured to use a Flat File Disassembler
Change the ReceiveIdocFormat property

Beyond the configuration steps above, we need to create one pipeline to each Idoc or at least add one more component in the Disassemble stage of the receiving pipeline for each Idoc.
I also looked if this schema generated in this specific way, is going to work even in case the SAP team does not release all the segments..

These are the configurations I did on the Receive Location:, Note ReceiveIdocFormat should be “String” not Typed (There is a mistake in the screenshot)

  • Where Path = “/*[local-name()=’ReceiveIdoc’]/*[local-name()=’idocData’]”

    For the schema importing process you should change the following properties:


Simplest way to get rid of your snapshot delta files in Vmware workstation 10

My initial vmdk file was 40GB, then I created 4 snapshots which added the file -0001.vmdk–>0002.vmdk—>0003.vmdk and finally 0004.vmdk. In my settings for VM, the hard disk was pointing to 0004.vmdk which had grown to the size of 50gb now.

That’s right, my original VM was about 40GB in total size and now with snapshots, it was taking almost 120GB.

The easiest workaround I found was to

  • BACK UP all my inside to the VM to as NAS drive.
  • Stop the VM
  • Edit the .vmx file in notepad and change the configuration to scsi0:0.fileName = “original.vmdk”
  •  Start the VM again

It started as it was in the fresh state before any of those snapshots were created.

BAM Portal Not working?

The server encountered a critical failure while trying to access the list of Views. The Business Management Web Service requires Administrator’s attention.

Use the navigation bar on the left to access Business Activity Monitoring views.
If the problem persists, contact your System Administrator.



Reconfigure BAM using BizTalk configuration wizard, If the reconfiguration does not work then you may have to delete the app pool in IIS and the BAM website and try reconfiguration again.BAM Reconfiguration


ESB Exception Handling

To leverage the exception handling provided by the ESB toolkit, Below are the steps

Add the exception block to your Orchestration

Add the code as in the snapshot inside the exception block


When the exception occurs, this block would publish the faultmsg to message box

By default, All fault messages are picked up by the send port “ALL.Exceptions” which populates the ESBExceptionDb. This can be viewed in ESB Management Portal

If you do not want this behavior, then you would have to subscribe the fault messages using “Application” or similar property and handle it in either sharepoint or any other custom mechanism.

Errors encountered in BRE deploying utility for SWIFT Schemas

Recently in one of my training session,  we encountered the following error, apparently it turns out to occur during the accidental double deployment of the policies for of an assembly.

Additionally, the environment which was on windows server 2012 did not seem to run the BRE utility, though it gave the success status message in the wizard, So we had to manually browse to the folder and all the appropriate vocabulary and policies.

Folder to find policies :- C:\Program Files (x86)\Microsoft BizTalk Accelerator for SWIFT 2013 Message Pack\SWIFT Messages\A4SWIFT-SRG2013\Base Policies


System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Microsoft.Solutions.FinancialServices.SWIFT.Utilities.BreDeployment.DeploymentDriver.GetMessageTypesFromAssemblies(ObjectCollection objCollection)
at Microsoft.Solutions.FinancialServices.SWIFT.Utilities.BreDeployment.MainForm.Deploy()
at Microsoft.Solutions.FinancialServices.SWIFT.Utilities.BreDeployment.MainForm.btnDeploy_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Troubleshooting SAP connectivity Issues

  • Elevate the privileges to SAP user account the highest possible permissions temporarily.
  •  Make sure your IP address is in the SAP acceptable access range.
  •  Install network monitor tool like wireshark from wireshark.org to see if any interesting traffic is
  • flowing between the BizTalk server and SAP server.
  •  While configuring to receive IDOC, SAP Basis team should have the visibility whether the
  • connection is success/not.
  •  Make sure the SAP connection is configured as Unicode

Click here for the detailed document.

The document consists some of the hands on errors encountered while connecting with SAP and the procedure to resolve it. a sample of one such error is

Error in Wireshark
*ERR*.1.registration of tp BIZTALK from host WQDESB12 not allowed.720.SAPGateway.
720.2.gwxxrd.c.3641..Tue Nov 12 15:08:07 2013….3972841.SAP-Gateway on host
HYPLABSSECC01.HYPLABS.iadb.org / sapgw00…..*ERR*

Error in Eventlog
The adapter “WCF-Custom” raised an error message. Details “Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_FAILURE.
AdapterErrorMessage=An exception has occurred on the listener while executing RfcWaitForRequest..
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterReplyChannel.EndTryReceiveRequest(IAsyncResult result, RequestContext&
eceiveRequest(IAsyncResult result, RequestContext& context)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)”.


What DBA’s need to Know about BizTalk Server

As a BizTalk Architect, you would always come across a situation, where you need to convince the client’s DBA team about “BizTalk server database architecture and its nature in use of in-built jobs”.

Traditionally DBAs’ presume certain roles and responsibilities on any product (which has “database in the backend”) acquired by the company, while it is very good to do so. There are products like BizTalk server that gets shipped with the pre-scripted SQL jobs, which if configured properly, would save administration/DBA team from lots of fuss in terms of maintenance and optimization.

Before diving into, where DBA’s would need to get involved in-terms of BizTalk administration, let me explain, How BizTalk is different from other traditional applications

Feature BizTalk Server Other Applications( with database backend)
Has Multiple Databases Yes, Typically around 5, but may depend on BizTalk Configuration Yes( Depends on application)
DB Tuning Required? No (if configured correctly) Yes, Depends on the transactions
Transactional Data Transactional data in the Msgbox can be viewed more like a cache.Once the message completes Workflow, data has no significance Transactional data may grow and may have to be retained for long term( Depends on the company policy)
Indexing Columns Not needed, If the jobs are configured properly, the data is backed up correctly and the transactional database( MsgBox) is maintained to the minimum Yes, as the table size increases, appropriate DB tuning needs to be applied.
Backup DBs BizTalk Jobs, take care of it. These jobs do multiple things along with backing up the database. Usually achieved through custom / SQL server backing up tools.
Can the backup be achieved without BizTalk Jobs? Yes, But not worth the risk. These jobs are optimized to backup necessary DB and do other things. DBA’s have full control; they can adapt the best for the solution.

The differences being depicted in the table above, Let see, where the DBAs needs to get involved in terms of BizTalk administration.

  1. Make sure that all the Jobs configured and enabled and running properly.
  2. Do not forget to enable the jobs after any sort of maintenance.
  3. Make sure sufficient database storage is available for the backups.
  4. Maintain the overall health of the SQL server (if standalone) or SQL cluster (if clustered).

In conclusion, Though BizTalk uses SQL server backend, it is deemed to see the entire as a product setup and avoid digging deep and modifying the pre-scripted BizTalk jobs to include custom solutions.