August 2010 Blog Posts

 

I’m on a BizTalk project at the moment where we need to call a bunch of PL/SQL packages in OEBS. No matter what we did and what we tweaked the OEBS adapter failed with the following error:

"ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array"

We spent days running around trying to resolve it. We tweaked the MaxOutputAssociativeArrayElements every which way from Sunday.

If we set it to 26214 we’d get “ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array". If we set it to a bigger value, such as 524287, the BizTalk BTSNTSvc.exe host process would blow up.

We focused on the index array not being big enough, but we should have been looking in the other direction. Eventually the Oracle DBA had a bright idea.

In the packages there were some loops. The loops were being initialised as indx := 0;  The DBA switched it to indx := 1; and the bloody thing worked.

Problem: OEBS Adapter gives "ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array"

Resolution 1: Make sure MaxOutputAssociativeArrayElements is big enough to hold your result arrays. (we used 32000)

Resolution 2: Make sure any loops in the PL/SQL packages are not initialising from zero.

 

The BizTalk product group guys at Microsoft have been helping us with  this issue…they may have some updates on it. Will update this post if anything interesting comes out.