JITL - JobScheduler Integrated Template Library
  1. JITL - JobScheduler Integrated Template Library
  2. JITL-551

JOC throws DBMissingDataException when Inventory does not reflect added objects

    Details

    • Type: Fix Fix
    • Status: Dismissed (View Workflow)
    • Priority: Minor Minor
    • Resolution: Works as designed
    • Affects Version/s: 1.12
    • Fix Version/s: 1.12.9
    • Labels:
      None

      Description

      Current Situation

      • Whenever a new job configuration is added to the JobScheduler's "live" folder then this configuration is not always updated on the JOC Cockpit GUI. When we search the name of the job chain, order or job of that job configuration in the advance search option we can see the job chain, job or order in their respective views. And when we click on any action(adding order, show job chain details, show job configurations etc.) from action menu of that job chain, job or order JOC Cockpit throws DBMissingDataException.

      How to reproduce

      • Add job configurations to your JobScheduler's live folder.
      • Check the JOC Cockpit. If inventory does not update the job configuration then use the "Advance Search" button in Jobs, Job Chains or Orders view.
      • Search for the job,job chain, order in advance search in their respective views.
      • The Job, Job Chain or Orders from the job configuration will be displayed but are not displayed in the tree structure of views at the left.
      • Click on the action menu of job, job chain or order searched.
      • Click on any action you want to performed.
      • JOC Cockpit throws DBMissingDataException.
        2019-02-27 12:22:06,299 ERROR qtp697960108-161 c.s.j.c.JOCDefaultResponse                   - DBMissingDataException: com.sos.joc.exceptions.DBMissingDataException: job chain /YADE-527/job_chain1 for instance js8_40458 with internal id 9 not found in table INVENTORY_JOB_CHAINS
        com.sos.joc.exceptions.DBMissingDataException: job chain /YADE-527/job_chain1 for instance js8_40458 with internal id 9 not found in table INVENTORY_JOB_CHAINS
            at com.sos.joc.jobchain.impl.JobChainResourcePImpl.postJobChainP(JobChainResourcePImpl.java:63)
            at com.sos.joc.jobchain.impl.JobChainResourcePImpl.postJobChainP(JobChainResourcePImpl.java:37)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
            at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
            at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
            at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
            at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
            at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
            at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
            at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
            at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
            at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
            at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
            at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
            at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
            at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
            at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
            at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
            at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
            at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
            at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
            at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:857)
            at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
            at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
            at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
            at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
            at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
            at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
            at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
            at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
            at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
            at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
            at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
            at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
            at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
            at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
            at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
            at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
            at org.eclipse.jetty.server.Server.handle(Server.java:503)
            at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
            at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
            at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
            at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
            at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
            at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
            at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
            at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
            at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
            at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
            at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
            at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
            at java.lang.Thread.run(Unknown Source)
        

      Desired Behavior

      • All the added job configuration should be visible in the JOC Cockpit and JOC Cockpit should not throw DBDataMissingException.
      1. scheduler.log
        356 kB
        Kanika Agrawal
      1. JITL-551.png
        66 kB

        Activity

        Hide
        Uwe Risse added a comment -

        When there is no data in the database for a given object due to any reasons the behavior to throw the DBMIssingDataException is correct.

        The question is: "Why is the data missing in the database"? There can be several reasons. E.g. an error in the daily plan calculation lets the inventory stop running. This is solved with JITL-544. Then the question is "Why does the daily plan calculation have an unique constraing exception"? One reason can be the issue described in JITL-513

        Show
        Uwe Risse added a comment - When there is no data in the database for a given object due to any reasons the behavior to throw the DBMIssingDataException is correct. The question is: "Why is the data missing in the database"? There can be several reasons. E.g. an error in the daily plan calculation lets the inventory stop running. This is solved with JITL-544 . Then the question is "Why does the daily plan calculation have an unique constraing exception"? One reason can be the issue described in JITL-513

          People

          • Assignee:
            Santiago Aucejo Petzoldt
            Reporter:
            Kanika Agrawal
          • Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: