I'm new to using the Hierarchical Data Stage, but I'm persevering with it and slowly I'm getting the hang of it, but I'm seeing an error with one of my jobs that has me tearing my hair out.
Basically, I'm trying to create XML using the hierarchical stage, from around 20 datasets. DSs are all sorted, partitioned and keyed on the same 3 key columns, and are all joined using HJoin steps in the stage. There is one parent level, in this case 'Policy' and all the other input datasets create separate 1st level children of 'Policy'.
Policy is actually a section of a much larger XSD, for which I've created a view in the contract library manager.
Steps in the assembly are:
- - Input
- Hjoin x 20 (all disk-based optimisation type)
- XML composer (document root set as my 'policy' view, passing output as string to output step)
- Output (to sequential file, with 'result_string' type set to LongVarChar)
When running the job however, I'm getting the fatal error below. If anybody could give me any pointers as to the steps I should be taking to diagnose and remedy this, I'd be grateful, because right now I've kind of hit a brick wall.
I suspect the pertinent point from the larger message is the line:
Code: Select all
cause = 'java.lang.IndexOutOfBoundsException: Index: -1, Size: 0'
Complete error:
Code: Select all
hd_XML_MotorPolicy,0: Fatal Error: 2016-05-03 13:40:52,719 Fatal [com.ibm.e2.applications.runner.E2AssemblyRunner] [] caught fatal exception
com.ibm.e2.core.exceptions.OperatorException: OperatorTransitionFailedAtRuntime operator = 'UserRuntimeOperatorFrame:Op-RT-22[XML_Composer]', cause = 'java.lang.IndexOutOfBoundsException: Index: -1, Size: 0'
at com.ibm.e2.core.exceptions.OperatorException$FactoryImpl.operatorTransitionFailedAtRuntime(OperatorException$FactoryImpl.java:115)
at com.ibm.e2.core.framework.runtime.OperatorController.runOperatorStep(OperatorController.java:72)
at com.ibm.e2.core.framework.runtime.scheduler.OperatorTask.runFrame(OperatorTask.java:86)
at com.ibm.e2.core.framework.runtime.scheduler.OperatorTask.execute(OperatorTask.java:40)
at com.ibm.e2.core.framework.runtime.scheduler.AbstractTask.run(AbstractTask.java:29)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:853)
Caused by:
java.lang.IndexOutOfBoundsException: Index: -1, Size: 0
at java.util.LinkedList.checkElementIndex(LinkedList.java:564)
at java.util.LinkedList.get(LinkedList.java:485)
at com.ibm.e2.xml.writer.E2ToSAXNonChoiceChildHandler.itemBeginForDerivationBranch(E2ToSAXNonChoiceChildHandler.java:1368)
at com.ibm.e2.xml.writer.E2ToSAXNonChoiceChildHandler.itemBegin(E2ToSAXNonChoiceChildHandler.java:1452)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEventForHandler(AbstractTraverser.java:668)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEvent(AbstractTraverser.java:534)
at com.ibm.e2.core.framework.runtime.generic.traversers.ItemTraverser.handleCurrentState(ItemTraverser.java:80)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.continueTraversal(AbstractTraverser.java:475)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.startTraversal(AbstractTraverser.java:463)
at com.ibm.e2.core.framework.runtime.generic.traversers.ItemTraverser.itemBegin(ItemTraverser.java:122)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEventForHandler(AbstractTraverser.java:668)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEvent(AbstractTraverser.java:534)
at com.ibm.e2.core.framework.runtime.generic.traversers.ItemTraverser.handleCurrentState(ItemTraverser.java:80)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.continueTraversal(AbstractTraverser.java:475)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.startTraversal(AbstractTraverser.java:463)
at com.ibm.e2.core.framework.runtime.generic.traversers.ItemTraverser.itemBegin(ItemTraverser.java:122)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEventForHandler(AbstractTraverser.java:668)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.handleEvent(AbstractTraverser.java:534)
at com.ibm.e2.core.framework.runtime.generic.traversers.VectorTraverser.handleCurrentState(VectorTraverser.java:133)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.continueTraversal(AbstractTraverser.java:475)
at com.ibm.e2.core.framework.runtime.generic.traversers.AbstractTraverser.startTraversal(AbstractTraverser.java:463)
at com.ibm.e2.core.framework.frames.AbstractRuntimeFrame.runTraverser(AbstractRuntimeFrame.java:1454)
at com.ibm.e2.core.framework.frames.AbstractRuntimeFrame.runTraverser(AbstractRuntimeFrame.java:1437)
at com.ibm.e2.core.framework.frames.UserRuntimeOperatorAdapter.runTraverser(UserRuntimeOperatorAdapter.java:138)
at com.ibm.e2.core.api.operator.AbstractRuntimeOperator.runTraverser(AbstractRuntimeOperator.java:199)
at com.ibm.e2.providers.xml.AbstractXMLProviderRuntime.process(AbstractXMLProviderRuntime.java:282)
at com.ibm.e2.core.framework.frames.UserRuntimeOperatorFrame.process(UserRuntimeOperatorFrame.java:93)
at com.ibm.e2.core.framework.runtime.OperatorController.callOperatorProcess(OperatorController.java:341)
at com.ibm.e2.core.framework.runtime.OperatorController.runOperator(OperatorController.java:273)
at com.ibm.e2.core.framework.runtime.OperatorController.doReadyToExecute(OperatorController.java:177)
at com.ibm.e2.core.framework.runtime.OperatorController.runDataStateTransistion(OperatorController.java:132)
at com.ibm.e2.core.framework.runtime.OperatorController.runTransitions(OperatorController.java:88)
at com.ibm.e2.core.framework.runtime.OperatorController.runOperatorStep(OperatorController.java:66)
... 6 more