PS_TXN table
Hi
Our application was developed using JDeveloper Build 1929 and Oracle 10g database.
We have three schemas in our application and all these schemas share the same PS_TXN.
My questions:
1. Should we truncate the PS_TXN table before deploying the code in the application server?
2. Will three schemas sharing the same PS_TXN table create any issues?
Thanks in Advance
Shoba
Maybe this can help:
http://www.oracle.com/technology/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
Similar Messages
-
Jbo.passivationstore set to file, but PS_TXN table is still being created
I've an app with application modules all having jbo.passivationstore set to file, a la the below:
jbo.passivationstore="file" However, when i test this, the app creates the PS_TXN table and PS_TXN_SEQ sequence in the database. From reading the doc, I'd expect that only if jbo.passivationstore were set to database.
Is there some other setting that needs to be configured in order to make the passiviation handled outside of the database?
am using JDeveloper 11g.
Thanks for your help.Timo, just tried it, that didn't work - PS_TXN is still being created.
i found that just deleting the names from the properties in the JDev UI had no effect. so i then literally set the attributes to empty strings as below:
<Database jbo.locking.mode="optimistic" jbo.txn_seq_name="" jbo.txn_table_name=""/>is there some other step i should take?
thanks for the quick response.
-george -
Hi
This is regarding the PS_TXN table which is created and maintained by ADF.
We developed our application using JDev build 1811 and Oracle 10g as database.
We recently migrated to JDev build 1929. We have the BC4J cleanup job in our database to clean the PS_TXN table.
Since ADF is running a full table scan with each query, we have got a suggestion from our database administrator to create an index for the column COLLID in PS_TXN table.
My question is:
1) Since this is a JDeveloper table, is JDeveloper responsible for automatically providing indexes?
2) If this is true, why was the index suggested by Robert (COLLID) not automatically added?
4) If we manually add this index, is there a possibility that JDeveloper will override our change?
Thanks in advance
ShobaHi
Thanks for the immediate reply.
We have not set the property. But as per my knowledge, if the value of this configuration parameter is not set by the developer (which is the default situation) then the framework will create the temporary tables using the credentials of the current application database connection. Thats what happens in our applicaiton. It created the table in our schema and the cleanup job is also working fine.
But why an index is not created for the table PS_TXN by JDev?
If JDev does not create any index, can we create one for performance.
If we create, will it overriden by JDev.
Thanks in Advance
Shoba -
Passivation and PS_TXN table - (Oracle ADF 11.1.1.6)
Hi All,
Can anyone help me understand the relationship between passivation and PS_TXN table insert? I am testing my application in a controlled environment using following steps -
(1) I truncated PS_TXN table first.
(2) I ran my application and visited couple of pages.
(3) I queried PS_TXN table and it has 22 rows in it
(4) When I check in enterprise manager ADF performance page the number of Passivations per min still shows 0 rows for all of my AMs.
What else could cause inserts in to PS_TXN table?
Thanks
ChetanSee My Oracle Support note IMPDP Fails With Errors ORA-39126 And ORA-01403: no data found (Doc ID 729346.1).
Note that is a forum and not official Oracle Support: you should not ask for urgent answer. -
Hi,
Reading the article "Understanding Application Module Pooling Concepts and Configuration Parameters" from Dive into Bc4j Blog; http://radio.weblogs.com/0118231/stories/2003/12/17/understandingApplicationModulePoolingConceptsAndConfigurationParameters.html
The jbo.passivationstore, parameter sets where we want to store Bc4j's Xml snapshots ( files on disk or Database ).
Bc4j AM, uses PS_TXN table to store it's states between sessions calls.
Querying this table at an dummy database schema just to see how many rows, i realize that it has almost 7.000 rows .
Application Module Pool does not have any parameter to configure a garbage collection over Ps_Txn or the disk file ?
I mean, as it is a dummy schema the application module pool, never will restore any state stored there, how it's works ? When can we clean all that rows ?
thanks.Passivation store parameter controls all passivation, including what is written to PS_TXN when you opt for the (Default of) database passivation.
BC4J should clean up the snapshots when the AM is released in stateless mode, or when the session expires.
If sessions are killed, we supply a script in ./BC4J/bin/bc4jsession.sql to clean up the info in that table at whatever interval you would like to. -
Have two applications that are built using JDeveloper 10.1.2.2 (Build 1929) that uses the PS_TXN Table. Would it be beneficial to add an Index to this Table to potentially increase response time?
The reason I ask is, if I do a count on this Table it takes about 10 seconds to return a count value of 7000+ records. Yet counts done on other Tables in the DB take about 1-2 seconds to return a value.
Thanks
FranI have reviewed this white paper - "Overview of Temporary Tables Created By BC4J" located here:
http://www.oracle.com/technology/products/jdev/htdocs/bc4j/bc4j_temp_tables.html
There is nothing specific about indexes on the PS_TXN table, so it looks like we just need to add an index and see if performance improves!
Does anyone have any experience with doing this? What were the results?
Thanks -
Query regarding passivation and PS_TXN tables
Hi All ,
I am working on a read only Dashboard UI where the DB user has only read privileges.
The jbo.server.internal_connection uses the same DB connection to create PS_TXN & PS_TXN_SEQ tables which fails for obvious reasons & I get the error -
"Couldnot create persistence table PS_TXN_seq".
I have disabled passivation at all the VO levels and also disabled jbo.isSupportsPassivation to be false at the AMLocal level , but still I am getting this error.
I have also increased the initial AM pool size in bc4j.xcfg & Connection Pool at the weblogic server level to avoid snapshots been written to this table.
Is there any way I can prevent any interaction with this table as the client too is not interested in any kind of passivation to happen for the time being.
ThanksThanks for your reply Chris.
Chris Muir wrote:
You might be taking the wrong approach to solving this. Rather than disabling the AM pooling (which btw is not supported by Oracle) to the database, instead you can get ADF to passivate to file or memory of the app server.I am confused as to what exactly jbo.ampool.issupportspassivation = false does then ? I read on one of the blogs that its a viable use case for Programatic VOs ?
Also regarding passivating to file system as per http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/bcstatemgmt.htm#ADFFD1307 , its not really a recommended approach.. hence was not going for that.
Can you please throw some more light ?
Thanks -
PS_TXN table - what is it?
I created a JSP page connected to a database, but when I change the login and password (of course authenticated to the database) I get the following errors:
JBO-30003: The application pool (OPTEN_MP.OPTEN_MPModule.OPTEN_MPModuleLocal) failed to checkout an application module due to the following exception:
oracle.jbo.PCollException: JBO-28033: Could not retrieve row from table PS_TXN, collection id 12 941, persistent id -1
java.sql.SQLException: ORA-00942: table or view does not exist
I haven't any table named PS_TXN
Thanx
ZoltanIt will create the table in the current schema (using a separate connection) unless an alternative is specified as explained in the link above.
The framework will create the necessary tables dynamically as long as the user connecting to a schema has create any table, create any sequence etc (again see link above). -
Why BC4J PS_TXN table , sometime may occur data lock situation ?
My appliation be develop in Jdev 10.1.2 with BC4J/JSP solution, but in production environment sometime when the application user request is heavy will occur the PS_TXN data lock situation and caused the application be hang and no any other user can access the application, so what situation wrong or event happen may caused the PS_TXN lock issue ? who have meet the situation and have the good idea to avoid the issue ?
Hi Nies......
If you want to Import Libraries to your target client then you need BASIS Consultant..........
For any report writer report we need a library.
Go to GR23 & specify the library name 1VK & press 'Enter'.
If it doesn't display......
Please check with your FI consultant as they are the users of the report writer reports and they only create the same.
there may be chance that this library has been deleted.
Is your system newly upgraded?
Solution..........
Library 1VK is SAP standard and exists in table T801K in client 000.
1. Create transport of table with library and transport to target client.
2. Or in target client, use transaction OKD3 to import the library 1VK from 000.
3. You can also use transaction GR29 to import individual libraries.
Thanks
Dhruv Malhotra -
Passivation Tables (PS_TXN) Not Created on First Passivation Attempt
Fusion Middleware Version: 11.1.1.5
WebLogic: 10.3.5.0
JDeveloper Build: Build JDEVADF_11.1.1.5.0_GENERIC_110409.0025.6013
Project: Custom WebCenter Portal Application integrated with custom ADF task flows.
Hi
We are trying to use the jbo.server.internal_connection property in the Business Components layer to change the database to which passivated application module data is written (PS_TXN table).
We have set the property to a valid data source using the JNDI name. The entry in the bc4j.xcfg file is as follows:
<Database jbo.locking.mode="optimistic" jbo.server.internal_connection="jdbc/mds/CustomPortalDS"/>
After making the change, when I run the application through my integrated WLS instance within JDeveloper, the first instance to passivate its data results in the necessary passivation database objects being created in the target instance (PS_TXN, PS_TXN_SEQ & PCOLL_CONTROL).
If however we then remove those objects from the target instance and run the application on our standalong WebLogic server we get an error accessing the application because the BC framework cannot find the PS_TXN table to write to. The following error appears in the log files:
Caused by: oracle.jbo.PCollException: JBO-28030: Could not insert row into table PS_TXN, collection id 10, persistent id 1
at oracle.jbo.PCollException.throwException(PCollException.java:36)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1901)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:564)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:688)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:647)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:465)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:294)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:5975)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5835)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateForUndo(ApplicationModuleImpl.java:8857)
at oracle.adf.model.bc4j.DCJboDataControl.createSavepoint(DCJboDataControl.java:3180)
at oracle.adf.model.dcframe.LocalTransactionHandler.createSavepoint(LocalTransactionHandler.java:75)
at oracle.adf.model.dcframe.DataControlFrameImpl.createSavepoint(DataControlFrameImpl.java:797)
at oracle.adfinternal.controller.util.model.DCFrameImpl.createSavepoint(DCFrameImpl.java:31)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.initializeModel(TaskFlowCallActivityLogic.java:1015)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.enterTaskFlow(TaskFlowCallActivityLogic.java:615)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.invokeLocalTaskFlow(TaskFlowCallActivityLogic.java:337)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.invokeTaskFlow(TaskFlowCallActivityLogic.java:229)
at oracle.adfinternal.controller.engine.ControlFlowEngine.invokeTaskFlow(ControlFlowEngine.java:217)
at oracle.adfinternal.controller.state.ChildViewPortContextImpl.invokeTaskFlow(ChildViewPortContextImpl.java:104)
at oracle.adfinternal.controller.state.ControllerState.createChildViewPort(ControllerState.java:1380)
at oracle.adfinternal.controller.ControllerContextImpl.createChildViewPort(ControllerContextImpl.java:78)
at oracle.adf.controller.internal.binding.DCTaskFlowBinding.createRegionViewPortContext(DCTaskFlowBinding.java:440)
at oracle.adf.controller.internal.binding.DCTaskFlowBinding.getViewPort(DCTaskFlowBinding.java:358)
at oracle.adf.controller.internal.binding.TaskFlowRegionModel.doProcessBeginRegion(TaskFlowRegionModel.java:164)
at oracle.adf.controller.internal.binding.TaskFlowRegionModel.processBeginRegion(TaskFlowRegionModel.java:112)
at oracle.adf.view.rich.component.fragment.UIXRegion$RegionContextChange.doChangeImpl(UIXRegion.java:1199)
at oracle.adf.view.rich.context.DoableContextChange.doChange(DoableContextChange.java:91)
at oracle.adf.view.rich.component.fragment.UIXRegion._beginInterruptibleRegion(UIXRegion.java:693)
at oracle.adf.view.rich.component.fragment.UIXRegion.processRegion(UIXRegion.java:498)
at oracle.adfinternal.view.faces.taglib.region.RegionTag.doStartTag(RegionTag.java:127)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:50)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspBodyTagNode.executeHandler(OracleJspBodyTagNode.java:58)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspClassicTagNode.evalBody(OracleJspClassicTagNode.java:87)
at oracle.jsp.runtime.tree.OracleJspIterationTagNode.executeHandler(OracleJspIterationTagNode.java:45)
at oracle.jsp.runtime.tree.OracleJspCustomTagNode.execute(OracleJspCustomTagNode.java:261)
at oracle.jsp.runtime.tree.OracleJspNode.execute(OracleJspNode.java:89)
at oracle.jsp.runtimev2.ShortCutServlet._jspService(ShortCutServlet.java:89)
at oracle.jsp.runtime.OracleJspBase.service(OracleJspBase.java:29)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:422)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:802)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:726)
... 122 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:889)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:204)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:540)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1079)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1466)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3752)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3937)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1535)
at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1887)
... 184 more
My understanding is that it is the adfbc_create_statesnapshottables.sql script that creates these database objects. The description in the file is as follows:
"By default, BC4J will create these objects in the schema of the internal database user the first time that the application makes a passivation request. This script is intended for advanced users who require more control over the creation and naming of these objects."
My question then is why is this not happening when the application is run on the standalone WebLogic server but is happening when run on the integrated JDevelopers WLS?
Any help greatly appreciated.Hi
Thanks for your reply.
We have already considered the points in the referenced links.
The correct privileges exist for the schema used by the data source and we don't see any messages other than ORA-00942.
We have run a 'Finest' trace on package oracle.jbo.* and there is no further information. I have pasted the diagnostic output from the first passivation attempt below:
[SRC_METHOD: passivate] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.Serializer] <AM MomVer="0">[[
<<PASSIVATION DATA FOLLOWS NOT PASTED INTO THREAD>>
</AM>
[SRC_METHOD: insert] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.pcoll.OraclePersistManager] [2226] **insert** id=1, parid=-1, collid=10, keyArr.len=-1, cont.len=981
[SRC_METHOD: insert] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.pcoll.OraclePersistManager] [2227] stmt: insert into "PS_TXN" values (:1, :2, :3, :4, sysdate)
[SRC_METHOD: getInternalConnection] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.DBTransactionImpl] [2228] Getting a connection for internal use...
[SRC_METHOD: getInternalConnection] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.DBTransactionImpl] [2229] Creating internal connection...
[ADF_MESSAGE_ACTION_NAME: Establish database connection] [APP: XXJLPPartnerLinkApp#V2.0] [ADF_MESSAGE_STATUS: begin] [ADF_MESSAGE_ACTION_DESC: ] [URI: /jlpportal/faces/home] [ADF_MESSAGE_CONTEXT_DATA: Is datasource?=true;#;Connection identifier=weblogic.jdbc.common.internal.RmiDataSource@2b002b00] Establish database connection
[SRC_METHOD: establishNewConnection] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.DBTransactionImpl] [2230] Trying connection: DataSource='weblogic.jdbc.common.internal.RmiDataSource@2b002b00'...
[ADF_MESSAGE_ACTION_NAME: Establish database connection] [APP: XXJLPPartnerLinkApp#V2.0] [ADF_MESSAGE_STATUS: add_context_data] [URI: /jlpportal/faces/home] [ADF_MESSAGE_CONTEXT_DATA: Success?=true] Establish database connection
[SRC_METHOD: establishNewConnection] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.DBTransactionImpl] [2231] Before getNativeJdbcConnection='weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection
[SRC_METHOD: establishNewConnection] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.server.DBTransactionImpl] [2232] After getNativeJdbcConnection='weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection
[SRC_METHOD: insert] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.pcoll.OraclePersistManager] [2233] **insert** error, sqlStmt=null
[SRC_METHOD: insert] [URI: /jlpportal/faces/home] [SRC_CLASS: oracle.jbo.pcoll.OraclePersistManager] [2234] java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist -
Cannot insert PS_TXN ORA-00942 table or view does not exist
We are using jdev 11.1.1.4.0
We have two users in the database and various application modules which connect to these users using datasources
We have tested the application with applicatin module pooling enabled off to test for passivation and activation errors and the application works fine.
Also on our internal test enviorment which has more then 10 concurrent users the application works fine
But at UAT it has started suddenly to give errors Cannot insert in PS_TXN ORA-00942 table or view does not exist
When I see the data in PS_TXN tables in various users I can see that passivation has taken place for the same day when there sporadic errors have been reported all having the cause as ORA-00942 table or view does not exist.
But one strange thing that I have observed is that the COLLID column has sequence numbers interchanged for the users randomly, database user 1 has sequence number from database user 2 seq and vice a versa in COLLID
As far as this problem goes the passivation should have failed with ORA-00001 primary key voilated but that is not the case
May be the keys have still not got to a number where they collide.
But I am totally taken aback on such a behaviour and I am not sure how to correct it.
So we have two porblems here
1) why did this error come in first place PS_TXN ORA-00942 table or view does not exist
2) Why are the sequence numbers interchanged for the databse users ?
Edited by: user3067156 on Jun 19, 2012 3:12 AMI got reply to my second question
It looks like a bug in the framework and the suggestions are to use only one ps_txn and ps_txn_seq by modifying the internal connection
But the first problem is not yet known why did it appear suddenly
Edited by: user3067156 on Jun 19, 2012 3:12 AM -
Hi All , i have the following problem:
I'm preparing the ADF/ADF Faces Application to run in failover mode.
One of the problems which i have is that after turning-on the Application Modules failover mode,
the application performance decrease significantly. I found-out that the Application passivates very intensively using (PS_TXN) table
(there are entered more than 30 records per user, only by navigatiing between 2-3 pages).
To increase the performance I'm trying at least to separate the Application Modules to use different tables for passivation.
I'm trying to do that by changing jbo.txn_table_name and jbo.txn_seq_name per different application modules.
However the Application continue using PS_TXN only.
Can somebody give an advice ?
Thanks in advance,
KrasimirOK, this clears things up a bit.
If you set jbo.dofailover="true" this means that each time an application module is returned to the application module pool in managed state (default state) it gets saved in the db in the ps_txn table. This is the reason why you see so many entries in the table (essentially it's like working without pooling, well, not quite but in a way).
Fail over has the advantage that the state of the module can be reconstructed (even on an other server in the cluster) at any time. Disadvantage is that it take time to store the data in the ps_txn table.
We turned this feature off for all non critical apps as the unscheduled server downtime is <1%. In case of a failure the loss of data is tolerable to our users (their decision).
If I remember correct, you can move all state related stuff into an other db (using an other connection) by setting the jbo.server.internal_connection="conn_to_db" parameter in the configuration of your application. After setting this up the ps_txn table should be created in the other schema.
You should see a better performance this way. If this fulfill your needs is an other question.
Timo -
Passivation table ps_txn not being cleaned up
Adf 11gR1PS1
Hello
I have a samll application using one unbounded task flow and one bounded task flow.
Each task flow uses a different application module.
The unbound task flow calls the bounded task flow in a modeless inline-popup via a button.
When running the application and clicking on the button the bounded task flow is called and a new row is inserted
into the ps_txn table.
However when the inline-popup is closed via the "x" on the popup window the row is not removed from the ps_txn table.
If the button is clicked again a new row is added to the theps_txn table.
Is this the normal behaviour, looking at 40.5.3 in the Dev Guide it would seem that the record should be deleted or reused.
I understand that there are scripts for cleaning up the table but shouldn't it be automatic ?
What am I missing ?
Regards
PaulHi Paul,
Do you use the failover (jbo.dofailover) ?
If not, I would expect records to be deleted from PS_TXN at activation.
I tested with the ADF BC Component Browser, selecting menus Save/Restore Transaction State, with jbo.debugoutput=console:
[277] (0) OraclePersistManager.deleteAll(2126) **deleteAll** collid=17461
[278] (0) OraclePersistManager.deleteAll(2140) stmt: delete "PS_TXN" where collid=:1
[279] (0) OraclePersistManager.commit(217) **commit** #pending ops=1But I also already noticed orphaned records in the table.
Do you use jbo.internal_connection to use the same connection whatever the AM instance that's passivated/activated or do you have an instance of the PS_TXN table in all AM's connections ?
Regards,
Didier. -
JBO-28030 possible constraints violation for PS_TXN
Hi guys, any updates on this old thread from 2004?
Constraints violation for PS_TXN
Sometimes, i also receive this error Running WLS Cluster with 2 nodes:
oracle.jbo.PCollException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-28030
at oracle.jbo.PCollException.throwException(PCollException.java:36)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1901)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:564)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:688)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:647)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:465)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:294)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:5975)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5835)
at oracle.adf.model.bc4j.DCJboDataControl.createSnapshot(DCJboDataControl.java:3143)
at oracle.adf.model.dcframe.DataControlFrameImpl.createSnapshot(DataControlFrameImpl.java:879)
at oracle.adf.model.BindingContext.createSnapshot(BindingContext.java:699)
at oracle.adf.model.BindingContext.writeObject(BindingContext.java:666)
at sun.reflect.GeneratedMethodAccessor726.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at weblogic.servlet.internal.session.ReplicatedSessionChange.writeExternal(ReplicatedSessionChange.java:153)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.java:618)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObjectWL(MsgAbbrevOutputStream.java:609)
at weblogic.rmi.internal.ObjectIO.writeObject(ObjectIO.java:38)
at weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java:88)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:221)
at weblogic.cluster.replication.ReplicationManager_1035_WLStub.update(Unknown Source)
at sun.reflect.GeneratedMethodAccessor675.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
at $Proxy135.update(Unknown Source)
at weblogic.cluster.replication.ReplicationManager.sendUpdateRequestToSecondary(ReplicationManager.java:740)
at weblogic.cluster.replication.ReplicationManager.updateSecondary(ReplicationManager.java:662)
at weblogic.servlet.internal.session.ReplicatedSessionData.syncSession(ReplicatedSessionData.java:639)
at weblogic.servlet.internal.session.ReplicatedSessionContext.sync(ReplicatedSessionContext.java:85)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2860)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2835)
at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1485)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1479)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (ADF_FMWK.PS_TXPLG_PK) violated
I'm using several passivation tables for different Application modules . PS_TXPLG acually have a PS_TXN table structure and PS_TXPLG_PK is equivalent to PS_TXN_PK .
Regards,
KrasimirHi guys, any updates on this old thread from 2004?
Constraints violation for PS_TXN
Sometimes, i also receive this error Running WLS Cluster with 2 nodes:
oracle.jbo.PCollException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-28030
at oracle.jbo.PCollException.throwException(PCollException.java:36)
at oracle.jbo.pcoll.OraclePersistManager.insert(OraclePersistManager.java:1901)
at oracle.jbo.pcoll.PCollNode.passivateElem(PCollNode.java:564)
at oracle.jbo.pcoll.PCollNode.passivate(PCollNode.java:688)
at oracle.jbo.pcoll.PCollNode.passivateBranch(PCollNode.java:647)
at oracle.jbo.pcoll.PCollection.passivate(PCollection.java:465)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:294)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:5975)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5835)
at oracle.adf.model.bc4j.DCJboDataControl.createSnapshot(DCJboDataControl.java:3143)
at oracle.adf.model.dcframe.DataControlFrameImpl.createSnapshot(DataControlFrameImpl.java:879)
at oracle.adf.model.BindingContext.createSnapshot(BindingContext.java:699)
at oracle.adf.model.BindingContext.writeObject(BindingContext.java:666)
at sun.reflect.GeneratedMethodAccessor726.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at weblogic.servlet.internal.session.ReplicatedSessionChange.writeExternal(ReplicatedSessionChange.java:153)
at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.java:618)
at weblogic.rjvm.MsgAbbrevOutputStream.writeObjectWL(MsgAbbrevOutputStream.java:609)
at weblogic.rmi.internal.ObjectIO.writeObject(ObjectIO.java:38)
at weblogic.rjvm.BasicOutboundRequest.marshalArgs(BasicOutboundRequest.java:88)
at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:221)
at weblogic.cluster.replication.ReplicationManager_1035_WLStub.update(Unknown Source)
at sun.reflect.GeneratedMethodAccessor675.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:194)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:164)
at $Proxy135.update(Unknown Source)
at weblogic.cluster.replication.ReplicationManager.sendUpdateRequestToSecondary(ReplicationManager.java:740)
at weblogic.cluster.replication.ReplicationManager.updateSecondary(ReplicationManager.java:662)
at weblogic.servlet.internal.session.ReplicatedSessionData.syncSession(ReplicatedSessionData.java:639)
at weblogic.servlet.internal.session.ReplicatedSessionContext.sync(ReplicatedSessionContext.java:85)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2860)
at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2835)
at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1485)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1479)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused By: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (ADF_FMWK.PS_TXPLG_PK) violated
I'm using several passivation tables for different Application modules . PS_TXPLG acually have a PS_TXN table structure and PS_TXPLG_PK is equivalent to PS_TXN_PK .
Regards,
Krasimir -
I cannot
t seem to find PS_TXN Table supposed to be created by ADF Business components , it is not created when i left the jbo.server.internal property to default or when i setup this property explicitly using jdbc url to use for this
using jdev 10.3.4 with ADF and DB2 Database . i have tried using oracle database for internal setting and still don't see that table getting created
what should i look for too see why it is getting created
The user id used have sufficient privileges to create the tables in database
Thanksthanks simon
timo yes , user profile used have privileges to create table and sequence , anyhow when we changed the jbo.passivationstore from null to database it is successfully created the table and sequence in oracle db , but it is not creating them when i use db2
but i think we found out the reason for my original problem i was investigating which led me to research PS_TXN Tables. we have lot of Transient view objects and under View object editor Passivate state is checked by default , but i have to also check the include All transient values to fix our problem in production
Regards
Maybe you are looking for
-
When I go to close for the day, I want to save my tabs so they will open with Firefox the next day.
-
Apple tv 1st gen cannot sync with itunes 11.1 purchase
My 1st gen Apple TV cannot sync movies/TV shows that were purchased after itunes 11.1 upgrade. Old movies/TV shows purchased prior to 11.1 have no issue deleting or adding to ATV, anyone has same issue?
-
Can i connect iphone 4 internet to my laptop
i just wanted to ask you that how am i connetct my iphone 4 internet to my laptop.
-
So I put together my files, put one in the desired drop zone and clicked on the burn (radioactive) icon. iDVD went through the motions and ejected the DVD. When I went to play it... nothing. I slipped it back into the disk drive and found nothing on
-
Application state is Failed?
Hi Friends, I am new one to oracle web center.I just tried to start the webcenter so i install the webcenter then i start my managed servers(IRM,IPM,IBR,UCR,URM).The managed servers are started successfully no problem in that.My issue is the app