Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 235 Big Data Appliance
- 1.9K Data Science
- 449.9K Databases
- 221.6K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 549 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 532 SQLcl
- 4K SQL Developer Data Modeler
- 186.9K SQL & PL/SQL
- 21.3K SQL Developer
- 295.5K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.2K Development Tools
- 104 DevOps
- 3.1K QA/Testing
- 645.9K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 154 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 17 Java Essentials
- 158 Java 8 Questions
- 85.9K Java Programming
- 79 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.2K Java SE
- 13.8K Java Security
- 203 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 402 LiveLabs
- 37 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.6K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 230 Portuguese
JBO-35007

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
-
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