Maximo

Maximo

Come for answers, stay for best practices. All we're missing is you.

 View Only
Expand all | Collapse all

Maximo 7.6.1.2 Upgrade Broke Autoscript Endpoint Interface

  • 1.  Maximo 7.6.1.2 Upgrade Broke Autoscript Endpoint Interface

    Posted Fri June 11, 2021 05:34 PM

    An interface I'm bringing from 7.6.0.9 to 7.6.1.2 broke after the upgrade because Maximo sees all of the messages as failed, even though they're succeeding. It's a simple interface with a publish channel on work order changes with an automation script endpoint. It does a HTTP POST to a url using the example from the 76 Script Features pdf: https://bportaluri.com/wp-content/downloads/Scritping76Featuresfor7609.pdf

    The script runs without problem and I can even see the success message come back in the logs and the data in the remote system. But then I immediately get the error:

    [ERROR] [MaximoMIF] [CID-CRON-10084] BMXAA1481E - Cannot deliver the message to the endpoint.

    null

    psdi.util.MXSystemException: BMXAA1481E - Cannot deliver the message to the endpoint.

    null

    at psdi.iface.jms.QueueToDestManagerProcessor.processMessage(QueueToDestManagerProcessor.java:107)

    at psdi.iface.jms.JMSQueueCronTask.getMessage(JMSQueueCronTask.java:466)

    at psdi.iface.jms.JMSQueueCronTask.cronAction(JMSQueueCronTask.java:284)

    at psdi.server.CronTaskManager.callCronMethod(CronTaskManager.java:2519)

    at psdi.server.CronTaskManager.access$1100(CronTaskManager.java:105)

    at psdi.server.CronTaskManager$CronThread.run(CronTaskManager.java:3429)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)

    at java.util.concurrent.FutureTask.run(FutureTask.java:277)

    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:191)

    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)

    at java.lang.Thread.run(Thread.java:811)

    Caused by:

    TypeError: unhashable type: 'stringmap'

    at org.python.core.PyException.fillInStackTrace(PyException.java:72)

    at java.lang.Throwable.<init>(Throwable.java:86)

    at org.python.core.PyException.<init>(PyException.java:46)

    at org.python.core.PyException.<init>(PyException.java:43)

    at org.python.core.PyException.<init>(PyException.java:61)

    at org.python.core.Py.TypeError(Py.java:265)

    at org.python.core.PyStringMap.stringmap___hash__(PyStringMap.java:702)

    at org.python.core.PyStringMap.hashCode(PyStringMap.java:697)

    at java.util.Objects.hashCode(Objects.java:109)

    at java.util.HashMap$Node.hashCode(HashMap.java:308)

    at java.util.AbstractMap.hashCode(AbstractMap.java:541)

    at java.util.AbstractMap$SimpleImmutableEntry.hashCode(AbstractMap.java:854)

    at java.util.HashMap.hash(HashMap.java:350)

    at java.util.HashMap.put(HashMap.java:623)

    at java.util.HashSet.add(HashSet.java:231)

    at jdk.nashorn.api.scripting.ScriptObjectMirror$13.call(ScriptObjectMirror.java:383)

    at jdk.nashorn.api.scripting.ScriptObjectMirror$13.call(ScriptObjectMirror.java:375)

    at jdk.nashorn.api.scripting.ScriptObjectMirror.inGlobal(ScriptObjectMirror.java:870)

    at jdk.nashorn.api.scripting.ScriptObjectMirror.entrySet(ScriptObjectMirror.java:375)

    at com.ibm.tivoli.maximo.script.JSR223ScriptDriver.copyFromBindings(JSR223ScriptDriver.java:418)

    at com.ibm.tivoli.maximo.script.JSR223ScriptDriver.evalScript(JSR223ScriptDriver.java:362)

    at com.ibm.tivoli.maximo.script.AbstractScriptDriver.runScript(AbstractScriptDriver.java:155)

    at com.ibm.tivoli.maximo.script.ScriptRouterHandler.invoke(ScriptRouterHandler.java:84)

    at psdi.iface.jms.QueueToDestManagerProcessor.processMessage(QueueToDestManagerProcessor.java:97)

    ... 12 more

    After that error the message shows up in message reprocessing, even though the data went across to the remote system. Any ideas on why Maximo thinks it failed? Or why it's throwing "TypeError: unhashable type: 'stringmap'" in the middle of it? It doesn't seem to be happening inside the autoscript since all of the logging lines print, and usually if it errors part way through the logs would just stop when it failed. Plus I can see the the actual return response in the logging too.






    #SupportMigration
    #Support
    #AssetandFacilitiesManagement
    #Maximo


  • 2.  RE: Maximo 7.6.1.2 Upgrade Broke Autoscript Endpoint Interface

    Posted Wed June 16, 2021 01:50 PM

    It seems there is a mismatch at the JSR 223 level between the different scripting engines. You are using a js script which calls a library script that is written in py. Can you try converting your library script to js and see if this problem goes away?






    #AssetandFacilitiesManagement
    #Support
    #Maximo
    #SupportMigration