Skip to Content
0

XSD Causes ESR to Hang (Oracle Transport Management OTM Glog IntXmlService XSD)

Mar 01, 2017 at 09:28 AM

106

avatar image

Hi All, (PI 7.1)

I would appreciate your thoughts on an issue I am having importing a large XSD into the ESR. The XSD is to enable integration to Oracle OTM and can be downloaded here:

https://otmgtm-a398782.otm.em2.oraclecloud.com/GC3Services/IntXmlService/call?xsd=1

Once downloaded it has a size of 1,140 KB.

The XSD loads and checks out okay but when you try to click on the 'Messages' tab of the External Definition the ESR hangs indefinitely. I have tried the same XSD in a PI 7.4 system and again the ESR hangs, however if I reduce the number of choices under element "GLogXMLElement" to say only one or two (e.g. "TransOrder" and "PlannedShipment") then the 'Messages' tab displays and the nodes can be expanded.

Unfortunately even if I reduce the XSD to only the transaction type I am interested in, the PI 7.1 system still cannot cope with the XSD.

Has anyone integrated to Oracle OTM before and can give some insight into what they did? My plan was to create an XSD per transaction type but it looks like I may have to reduce the XSD further.

Any help appreciated.

Che

capture.jpg (53.9 kB)
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

3 Answers

Best Answer
Surbjeet Dhillon Mar 20, 2017 at 01:45 PM
0

I am going to close this thread as the consensus is that PI cannot handle the OTM schema in its entirety. If you ever come across this issue my suggestion would be to try each of the following steps until you have it working:

  1. Follow note 1580914 to increase the Java Heap size on both the client and server (requires Java parameter change and editing of your local .jnlp file). Now try working with the XSD.
  2. Find node GLogXMLElement in the XSD and remove all choice elements not used. For example if you using TransOrder then remove PlannedShipment, ActualShipment, TenderOffer etc. Now try working with the XSD.
  3. Edit the XSD further by removing deeper elements and nodes that are not used. Alternatively get hold of a sample XML and generate an XSD from that. Now try working with the XSD.

Of course you could use an XSLT, Java or ABAP mapping. Using an ABAP proxy could also be a possibility but you may have problems as the XSD contains the Choice and Abstract keywords which may no be supported by the proxy builder.

Hopefully this will help someone.

Che

Share
10 |10000 characters needed characters left characters exceeded
avatar image
Former Member Mar 14, 2017 at 03:35 PM
0

Hi Che,

If you want to increase Java thread stack size, you can check below thread but certainly it has drawbacks:

ESR | import big XSDs

In your case, try to first build the reduced xml which would be accepted at Oracle OTM side, editing xml is easier than xsd.

Then generate xsd from that xml (can use Altova XML Spy).

Regards,

Nabendu.

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hi Nabendu,

I have looked at the thread you linked but have not tried the suggestion. However I have already followed the instructions in note 1580914 and increased the max heap size on both the server and client. This did not help.

In some cases editing the XSD as I stated in my original post does work and we are able to map the interface. So we are able to complete some of the interfaces. It is only when we are left with a deeply nested root node that we get Java Heap errors. In these cases, as you say, we may have to resort to producing an XSD from and XML.

Thanks very much for your suggestions!

0
Harish Mistri Mar 14, 2017 at 11:21 PM
0

Hi Che,

I had done the integration of OTM with SAP in past. The problem is OTM has one common structure for all communication object/services. and the structure of XSD is with multi-hierarchy references. We had try to overcome the issue with the increase in Max heap size and other parameters in Java side but it only reduces the heap size and not completely eliminated it.

The solution we opted is to create our own version of XSD out of OTM XSD for each interface. So your PI structure will have interface specific XSD's. I know this is complex exercise but this was I opted in past and worked well. The drawback with this is you need to change the structure every time when OTM structure is change, but the occurrence of this is very less. Let me know if you found any better solution.

regards,

Harish

Show 1 Share
10 |10000 characters needed characters left characters exceeded

Hi Harish,

Everything you say makes sense and I am experiencing the same problems and coming to the same conclusions. I am producing individual XSD's for each interface. In some cases it is simple and I only need to make a small change to the main XSD i.e comment out all message types apart from the one I am using. In some cases this is not enough and I will have to dive deeper into the XSD to remove unused nodes. Alternatively I may resort to producing an XSD from an XML if it comes to that.

You are right using a newer version of the OTM schema would require manual rework of the XSD's in PI.

Thanks for you suggestions!

1