Forum Stats

  • 3,734,233 Users
  • 2,246,914 Discussions
  • 7,857,193 Comments

Discussions

JBO-35007

user11983904
user11983904 Member Posts: 1 Blue Ribbon
edited Nov 5, 2019 4:01AM in DevOps Discussions

Hola,

     Estamos teniendo un problema en el ambiente productivo, el mismo está arrojando JBO-35007. Por lo que estuvimos revisando en distintos foros de Oracle, el mismo lo asocian a el botón volver en ADF, pero no estamos usando el mismo dicha acción en nuestro producto. Sabrían por que puede estar dando dicho error?

     Les adjunto el error que arroja:

25/10/2019 06:53:12.957 ERROR [AJPRequestHandler-RMICallHandler-32] JBO-35007: Ha cambiado la divisa de la fila desde que se ha presentado la interfaz de usuario. La clave de fila esperada era oracle.jbo.Key[1006104627583 ]

oracle.jbo.JboException: JBO-35007: Ha cambiado la divisa de la fila desde que se ha presentado la interfaz de usuario. La clave de fila esperada era oracle.jbo.Key[1006104627583 ]

    at oracle.adf.model.binding.DCBindingContainerState.throwRowNotFoundException(DCBindingContainerState.java:204)

    at oracle.adf.model.binding.DCBindingContainerState.validateIterator(DCBindingContainerState.java:227)

    at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:366)

    at oracle.adf.model.binding.DCBindingContainerState.validateToken(DCBindingContainerState.java:442)

    at oracle.adf.model.binding.DCBindingContainer.validateToken(DCBindingContainer.java:3386)

    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:104)

    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareModel(FacesPageLifecycle.java:78)

    at com.unitech.ge.framework.lifecycle.UPageLifecycle.prepareModel(UPageLifecycle.java:228)

    at oracle.adf.controller.v2.lifecycle.PageController.prepareModel(PageController.java:29)

    at oracle.adf.controller.v2.lifecycle.Lifecycle$8.execute(Lifecycle.java:210)

    at oracle.adf.controller.v2.lifecycle.Lifecycle.executePhase(Lifecycle.java:116)

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:29)

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener$4.after(ADFPhaseListener.java:327)

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:90)

    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:254)

    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)

    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)

    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:233)

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:202)

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)

    at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)

    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)

    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)

    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)

    at com.unitech.ge.framework.util.UContextFilter.doFilter(UContextFilter.java:92)

    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)

    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)

    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:901)

    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)

    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)

    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)

    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)

    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)

    at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)

    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)

    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)

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

25/10/2019 06:53:12.959 ERROR [AJPRequestHandler-RMICallHandler-32] Error: Contexto: /prod/movimiento/FirmarActuacionCrud.jspx

Exception: oracle.jbo.JboException: JBO-35007: Ha cambiado la divisa de la fila desde que se ha presentado la interfaz de usuario. La clave de fila esperada era oracle.jbo.Key[1006104627583 ]

    at oracle.adf.model.binding.DCBindingContainerState.throwRowNotFoundException(DCBindingContainerState.java:204)<br><br>

    at oracle.adf.model.binding.DCBindingContainerState.validateIterator(DCBindingContainerState.java:227)<br><br>

    at oracle.adf.model.binding.DCBindingContainerState.validateStateFromString(DCBindingContainerState.java:366)<br><br>

    at oracle.adf.model.binding.DCBindingContainerState.validateToken(DCBindingContainerState.java:442)<br><br>

    at oracle.adf.model.binding.DCBindingContainer.validateToken(DCBindingContainer.java:3386)<br><br>

    at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.prepareModel(PageLifecycleImpl.java:104)<br><br>

    at oracle.adf.controller.faces.lifecycle.FacesPageLifecycle.prepareModel(FacesPageLifecycle.java:78)<br><br>

    at <b><b>com.unitech.</b></b>ge.framework.lifecycle.UPageLifecycle.prepareModel(UPageLifecycle.java:228)<br><br>

    at oracle.adf.controller.v2.lifecycle.PageController.prepareModel(PageController.java:29)<br><br>

    at oracle.adf.controller.v2.lifecycle.Lifecycle$8.execute(Lifecycle.java:210)<br><br>

    at oracle.adf.controller.v2.lifecycle.Lifecycle.executePhase(Lifecycle.java:116)<br><br>

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.mav$executePhase(ADFPhaseListener.java:29)<br><br>

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener$4.after(ADFPhaseListener.java:327)<br><br>

    at oracle.adf.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:90)<br><br>

    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:254)<br><br>

    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)<br><br>

    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)<br><br>

    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)<br><br>

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:233)<br><br>

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:202)<br><br>

    at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123)<br><br>

    at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103)<br><br>

    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)<br><br>

    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162)<br><br>

    at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17)<br><br>

    at <b><b>com.unitech.</b></b>ge.framework.util.UContextFilter.doFilter(UContextFilter.java:92)<br><br>

    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)<br><br>

    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)<br><br>

    at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:901)<br><br>

    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)<br><br>

    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)<br><br>

    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)<br><br>

    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)<br><br>

    at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)<br><br>

    at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)<br><br>

    at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)<br><br>

    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)<br><br>

    at java.lang.Thread.run(Thread.java:682)<br><br>

Saludos

Answers

  • Martien van den Akker
    Martien van den Akker Member Posts: 2,775 Bronze Crown
    edited Nov 5, 2019 4:01AM

    Hi,

    I'm quite new to spanish (I'm learning it for a few weeks now in Duolingo), but I'm not confident enough to answer in Spanish.

    But I think this message pops up when a row is changed, probably by another user or because of triggers on the table.

    It's an ADF message, that says that the database has changed regarding the rows fetched in the session and as presented in the screen. Because of the way of working of ADF, which is a server side framework, it fetches the rows that are requested by the enduser-screen, using ADF-BC. So it holds the rows for the particular session in memory (JavaHeap). Then the enduser changes something in the screen and submits the changes. Then the ADf_BC framework checks if the values in memory for the rows that are changed by the user are still the same in the database. Checks if the particular rows are still there. But also if the old value, as kept in the ADF-BC objects are the same as in the database. Only then it will change the value and posts and commits them to the database.

    In your case, some other end user or process changed the rows in the database, right after the enduser requested the data in the screen, but just before he/she submits the changes.

    Interesting enough the following row is presented in the stack trace:

     at oracle.adf.model.binding.DCBindingContainerState.throwRowNotFoundException

    Which suggests that the changed row seems to be deleted.

    I also see the line

    at com.unitech.ge.framework.lifecycle.UPageLifecycle.prepareModel(UPageLifecycle.java:228)

    Which shows me that this apparently is a custom ADF application. I think that you should get back to your ADF developers to review the application. Try to find which entities are involved in the screen and how they may be affected by other processes. Check Pl/Sql processes and triggers.

    However, it can simply be that another user changed the same data.

    As far as I can see, it is not a Weblogic issue. Merely ADF in combination with custom code.

    Kind regards,
    Martien

Sign In or Register to comment.