Search This Blog

SBL-EAI-04266: '%1' service with method '%2' failed while generating XML to be written to file '%3'.

Applies to:
Product Release: V7 (Professional)
Version: 7.8.2.2 [19219] DEU
Database: Oracle 10g
Application Server OS: Microsoft Windows 2003 Server SP1
Database Server OS: HP-UX 11.0

This document was previously published as Siebel SR 38-3010916231.

Symptoms
SBL-EAI-04112, SBL-EAI-04266
Dear Support,

we received a WSDL from a third party system we need to integrate to. By trying to import the WSDL into Tools (New Object -> Web Service) we received the following errors:

'EAI XML Write to File' service with method 'WriteEAIMsg' failed while generating XML to be written to file 'C:\Dokumente und Einstellungen\isteller\Eigene Dateien\Bronco\Fault.xml'.
(SBL-EAI-04266)

The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112)

Character '0xdefe' cannot be represented in XML(SBL-UNU-00245)

I analyzed the WSDL and could reduce the error to the tag . Whenever we tried to use a string like "xxx_defect" the error occures. Operation names like "_defect", "defect" or "xxx_yyy" are working fine. As soon as the operation name ends on "_defect" the error occures. the effect is also indepent of the length of the string.

Attached for you are good.wsdl and fault.wsdl file so that you can easily reproduce the issue.

We need a solution urgently to continue with our project.

Kind Regards.


Solution
Message 1
For benefit of other Users:

Following errors are observed while trying to create new webservice using wsdl file where the operation name is like xyz_defect:

XMLConversion EAIXMLCnvDetail 4 0 2006-04-20 15:33:11 Adding field 'Operation Name' element 'OperationName' with value 'xyz[]ct' to XML hierarchy of element 'OperationBinding'.

****i am unable to paste the exact value in above, it is like xyzSQUAREBOXct


ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 Begin: Business Service 'XML Hierarchy Converter' invoke method: 'HierToDoc' at 8eab2f8

XMLConversion XMLCnvWarning 3 0 2006-04-20 15:33:11 Character '0xdefe' cannot be represented in XML

ObjMgrLog Error 1 0 2006-04-20 15:33:11 (xmlcnv.cpp (981)) SBL-UNU-00245: Character '0xdefe' cannot be represented in XML

ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 Business Service 'XML Hierarchy Converter' invoke method 'HierToDoc' Execute Time: 0.016 seconds.

ObjMgrBusServiceLog InvokeMethod 4 0 2006-04-20 15:33:11 End: Business Service 'XML Hierarchy Converter' invoke method: 'HierToDoc' at 8eab2f8

ObjMgrBusServiceLog Error 1 0 2006-04-20 15:33:11 (eaixmlcnvsv.cpp (197)) SBL-EAI-04112: The XML Hierarchy cannot be converted to an XML Document.

[Continued]

Message 2
[Continued from previous activity]

Looks like the word is being split / changed when the format is xxxxx_defect for the operation name.

It looks the XML parser used by EAI XML Hierarchy Converter BusSvc recognizes the value "x_defe" as the UTF-16 sequence so it throws the error.

The workaround to import the wsdl file that has operation name in the format xxx_defect is as follows:

If you change the value from "a_defect" to "a_unddefect" in the WSDL, it should not cause any error while creating the web service in Siebel tools. The idea is we tell the XML parser that the operation name include the "underscore" + "defect" rather than a whole character "x_defe".
Indeed the method/operation name will not be changed. It will be inserted into Siebel tools as "a_defect".
Even in the XML file it will be created as "a_defect" which is right.

It is just that you are clarifying the usage of underscore “_” in the WSDL file. Instead of just “_” you will use “_und”.

These are some typical changes to wsdl files recommended for special character usage.










Applies to:
Siebel CRM - Version: 8.0.0.3 [20416] and later [Release: V8 and later ]
Information in this document applies to any platform.
***Checked for relevance on 13-JAN-2011Y***
Symptoms

The customer was trying to convert some data to an XML document on Siebel 8.0 and received the error below:


Error invoking service 'EAI XML Write to File', method 'WriteEAIMsg' at step 'Write XML'.(SBL-BPR-00162)
--
'EAI XML Write to File' service with method 'WriteEAIMsg' failed while generating XML to be written to file '\\pdbh9tn25\FTEXPIMP\XMLExport\SRQ$$__SBS Field Operations.XML'.
(SBL-EAI-04266)
--
The XML Hierarchy cannot be converted to an XML Document.(SBL-EAI-04112)
--
Character '0x0001' cannot be represented in XML(SBL-EAI-00245)

However the same data was being converted without errors on Siebel 7.5. The only difference was that the offending character was converted to ‘ü’ (u umlaut).

Cause

The cause was the difference between the character set converter of Siebel 7.5 and 8.0.

On 7.5 the character set converter allowed non characters to be converted as strange characters like ‘ü’ instead of raising errors.

On 8.0 the character set converter is more restrictive and raises an error when non characters are converted to the given character set. This is the correct behavior.
Solution

The customer found that if they set the “Ignore Char Set Conversion Error” to true on the XML converter they are able to save the data to file without errors however there will be a question mark where offending characters are found.

This made their process finish correctly and the XML message be created without errors.

Just note that the “Ignore Char Set Conversion Error” argument will replace offending characters with a question mark. However it is advisable to use this argument set to True only while the data is not corrected on the database as it might mask other character set errors.










Applies to:
Siebel CRM - Version: 8.1.1 SIA [21111] and later [Release: V8 and later ]
Information in this document applies to any platform.

Symptoms
During processing for some interfaces, XML is written to a file in a network folder, for further processing by the middleware. The 'EAI XML Write to File' Business Service is used to write the file to the intended network location.

When processing some large files (e.g. 1 MB), it was observed that Siebel would write to a temporary location. And when this occurred, a failure was reported :-

ObjMgrBusServiceLog Error 1 000002ef4be2083c:0 2010-05-06 01:53:54 (eaixmlprtsvc.cpp (234)) SBL-EAI-04266: 'EAI XML Write to File' service with method 'WriteXMLHier' failed while generating XML to be written to file '\\10.10.10.10\SiebFS\CreditCard\FileWJ05.000006.xml'.

New large file reference is created - 'D:\sba811\siebsrvr\temp\1-6TU2_0.tmp'.

EAIFileAttachments EAIFileAttachmentDebug 5 000030134bde1fbc:0 2010-05-04 04:36:40 New large file reference is registered - 'D:\sba811\siebsrvr\temp\1-6TU2_0.tmp'.

ObjMgrLog Error 1 000030134bde1fbc:0 2010-05-04 04:36:40 (filerefutil.cpp (272)) SBL-GEN-10103: Error opening specified file

ObjMgrLog Error 1 000030134bde1fbc:0 2010-05-04 04:36:40 (filerefutil.cpp (272)) SBL-EAI-50176: Error writing to file reference 'D:\sba811\siebsrvr\temp\1-6TU2_0.tmp'.



Cause
In this case, it was determined that the error arose because the middleware application was picking up the file before Siebel had completed writing the file.


Solution
The middleware process picking up the file was delayed, to allow Siebel to complete it's operation.

Other points to check :-

1. Ensure the \temp directory being written to is accessible from the operating system user running the Siebel Server service.

2. Ensure there is sufficient space, as discussed in :-

The "Error writing to file reference '...\siebsrvr\....tmp (SBL-EAI-50176)'" is raised from "IntObjHierToXMLDoc" method of the "EAI XML Converter" BS when producing large XML document (Doc ID 824888.1)

3. Check that no other processes (e.g. anti-virus software) are trying to access the files being written to by Siebel.



References
NOTE:824888.1 - The "Error writing to file reference '...\siebsrvr\....tmp (SBL-EAI-50176)'" is raised from "IntObjHierToXMLDoc" method of the "EAI XML Converter" BS when producing large XML document

No comments:

Post a Comment