ADF Taskflow Transaction Management Pattern
We have a project that consumes public common taskflows from a shared library.
How should we define the transaction management of these public common taskflows?
Who is respondsible for the transaction management?
I am able to understand the various transaction handling mechanisms suppported by ADF taskflow from the following link in the Developer's guide:-
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/taskflows_complex.htm#BABICCGC
But I would like to understand the right pattern for implementating the above.
Please provide your inputs/links on the same.
Thanks in advance,
Navaneeth
There is no "right" way to do it. If the task flows are standalone, independent transactions that operate independently of any master task flows, then you can have them manage their own transactions; if you want them to join any existing transaction, you would do that. Without an example and without understanding the purpose for which you are building the common taskflows, it's pretty impossible to say much of anything.
John
Similar Messages
-
New ADF Taskflow transaction acquires a new JDBC connection?
Hi,
I would like to know more about ADF Taskflow transaction in relation to JDBC Connection.
tf1 ----(contains)---- page1 and call to tf2
tf2 ----(contains)---- page2
page1 - search objects
page2 - edit objects
I have two pages part of two taskflows, first taskflow does not create any transaction but the page1 in tf1 shows a searh screen for objects. I want to use transaction behavior of ADF TF for tf2 which is called in tf1.
My tf2 contains a page for edit objects, if i set New transaction as TF transaction behavior for tf2.
Does it really acquire a new JDBC connection?
I really appreciate if someone can help me with this.
Thanks,
Sunil."Is there any way to achieve 1 user ---> 1 connection ?"
I don't claim to be an expert on answering this as there's still a lot of things I need to investigate, and other's in the forum may chime in with more informed answers, but my understanding is you need to:
a) Use a single root AM
b) Configure your BTFs to use "shared data control scope" and the same AM
c) All of your BTFs should use "Use existing transaction if possible"
Because of "c", the very first BTF called, will not have a transaction to borrow, so it will establish a new transaction and therefore a new connection.
An alternative is, and I'm on shaky grounds here so please check this for yourself, but you could set all your BTFs to "use no transaction", which implies I believe they switch back to the model used in JDev 10g, where it's purely your AMs that determine connections/transactions.
As for saying 250 connections sounds very high, that's really up to you. If you build an application that you need to support a user with multiple transactions, it's your requirement that causes this. IMHO Oracle has given you the flexibility to build your application anyway you want, so it's up to you to decide if you want multiple concurrent transactions per user or not.
Finally regards the behaviour observed in WLS, note that the AM pooling options can influence the behvaiour of connections, so it's hard to say what you're seeing is correct, it depends. A suggestion is to install Oracle's Fusion Middleware Control application and use that for monitoring statistics; the FMW Control has smarts built it to help you observe the AM pooling and connection pooling. Andrejus Baranovskis has a few blog posts describing how he used this to track the pooling options.
CM. -
hi all,
according our poject structure, we have a lot of bound taskflow file.
Then, we want to split into different folder under WEB-INF folder. eg(WEB-INF/POC)
can we do that way?
but after i did, i get the following exception.
<RegistrationConfigurator><handleError> Server Exception during PPR, #1
oracle.adf.controller.ControllerException: ADFC-02001: The ADF Controller cannot find '/WEB-INF/POC/dyna1-task-flow-definition.xml'.
at oracle.adfinternal.controller.metadata.provider.MdsMetadataResourceProvider.getMetadataObjects(MdsMetadataResourceProvider.java:460)
at oracle.adfinternal.controller.metadata.provider.MdsMetadataResourceProvider.loadUnmutalbeMetadataResources(MdsMetadataResourceProvider.java:367)
at oracle.adfinternal.controller.metadata.provider.MdsMetadataResourceProvider.getResources(MdsMetadataResourceProvider.java:179)
at oracle.adf.controller.internal.metadata.MetadataService.getTaskFlowDefinition(MetadataService.java:217)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.findTaskFlowDefinition(TaskFlowCallActivityLogic.java:1071)
at oracle.adfinternal.controller.activity.TaskFlowCallActivityLogic.execute(TaskFlowCallActivityLogic.java:162)
at oracle.adfinternal.controller.engine.ControlFlowEngine.executeActivity(ControlFlowEngine.java:989)
at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:878)
at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:777)
at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:551)
at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:147)
at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleAdfcNavigation(NavigationHandlerImpl.java:109)
at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:78)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94)
at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/WEB-INF/POC/dyna1-task-flow-definition.xml"
at oracle.mds.core.MetadataObject.getBaseMO(MetadataObject.java:1036)
at oracle.mds.core.MDSSession.getBaseMO(MDSSession.java:2769)
at oracle.mds.core.MDSSession.getMetadataObject(MDSSession.java:1188)
at oracle.mds.core.MOResolver.getMetadataObjects(MOResolver.java:203)
at oracle.adfinternal.controller.metadata.provider.MdsMetadataResourceProvider.getMetadataObjects(MdsMetadataResourceProvider.java:414)
... 63 more
With Regards,
WPHi waiphyo,
I think you follow this steps when you want to move the boundedTaskflow.xml file in to different folder :
1- select the file from Application Navigator.
2- from Refactor (in menu bar) choose move.
3- create new folder and save the file in this folder.
if you used this taskflow in bounded/unbounded taskflow you should select this bounded/unbounded taskflow (the container of the moved taskflow) thin in the taskflow definition structure select the moved task flow and check for its path in property Inspector.
Sameh Nassar
Edited by: Sameh Nassar on Jan 25, 2010 1:02 PM -
11g TP2 ADF Task Flows and Transaction Management
I'm wondering how ADF Task Flow Transaction Management works vis-a-vis database sessions and using stored procedure calls in an environment with connection pooling. I haven't written the code yet but am looking for a better understanding of how it works before I try.
Example:
I create a bounded adf task flow. I set the "transaction" property to "new-transaction" and the "data control scope" to "isolated".
As the task flow is running, the user clicks buttons that navigate from page to page in the flow. Each button click posts the page back to the app server. On the app server a backing bean method in each page calls a stored procedure in a database package to modify some values in one or more tables in the database. The procedure does not commit these changes.
Each time a backing bean makes a stored procedure call will it be in the same database session? Or will connection pooling possibly return a different database connection and therefore a different database session?
If the transaction management feature of the adf task flows guarantees me that I will always be in the same database session then I don't have to write any extra code to make this work. Will it do that or not?I don't know if it is documented in the adf documentation currently available for 11g TP2 but what you ask for is a normal transaction management with connection pooling and i can't imagine it is not implemented in ADF BC layer like it is in JPA or other persistence layer.
A transaction will always be executed in the same session. Normally your web session will stay in the same session even you start more than one transaction. You don't have to write any code to manage the session pooling. It is a good practices to customize it at the persistence layer during installation depending on your infrastructure.
Take a look into Fusion Developer Guide ... i'm sure you will find some better explanations about this. -
Does the ADF support annotation transaction management?
hi there,
does the ADF support annotation transaction management or some kind of way like that? how?Trasnactions are mainitained in the Application module and in the task flow level.. so it do support transaction management..
Annotations if you are asking about Java features then, Yes it supports that too.. -
Custom ADF Taskflow to be displayed as part of Human Task notification
Hi all,
I am trying to display a custom ADF taskflow as part of notification of a Human Task. I see multiple ways of implementing it and need guidance on how to go about this.
As a first step, I created a taskflow based on the human workflow task. This is WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml. Then I see 2 options -
Option 1 - Use setTaskDisplayUrl while creating the task
oracle.bpel.services.workflow.task.model.Task task = objectFactory.createTask();
String AppUrl = oracle.topologyManager.client.deployedInfo.EndPointProvider.getExternalEndpoint("xyzCommon");
String taskflowUrl = AppUrl + "/faces/adf.task-flow?_id=myTaskflow&_document=WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml";
task.setTaskDisplayUrl(taskflowUrl);
Option 2 - Define the taskflow in the Enterprise Manager - Add or remove the URI for the user defined task details application.
Setup the Application Name=worklist, Host Name, HTTS Port, URL=/xyzCommon//faces/adf.task-flow?_id=myTaskflow&_document=WEB-INF/oracle/apps/xyzcommon/activities/publicUi/worklist/flow/myTaskflow.xml
Questions -
1. Are both the above options required to get my notification correct or is just one of them enough? If one of them is enough, which is better to use?
2. Is creating the taskflow from the human workflow task the only way to customize my notification to show a taskflow?
Thanks,
SriniLearnt that I need to follow this link and no explicit setting is required in code.
-
No more conversation transaction management? Click to flag this post
Hi,
http://www.onepd.com/ declares:
One Page design pattern eliminates conversation transaction management
is this true, did somebody try similar or this pattern ?
Thanks.I know the ans...first install os x mountain lion again above all your installation..then see the build it should be.. (12c60) then..update every thing..but dont install or update..."update for macbook pro and macbook air 2.0 "it is the culprit ...then hide that update..and remember to install offline version of combo and supplement update 10.8.2..ok..as sometimes when ur notification cetre not work then installoffline "combo and supp" updates...ok..REMEMBER NOT TO INSTALL MACBOOK AIR AND MACBOOK PRO 2.0 UPDATE...PLZ...AND USE UR SYSTEM...!! follow me https://www.twitter.com/ankit8083 https://www.facebook.com/ankit8083...good luck..DONT CHANGE UR BUILD..AS IF U WILL CHANGE IT THEN UR SHARE BUTTON WILL NOT WORK..IN NEW BUILD..!!And wait for apple to get new build after april 2013...but not download macbook pro and macbook air 2.0 update..which help in graphical improvements and some usb devices...!!
-
ADF Taskflows with EJB and pageflow scope
Hi,
I am trying to create a simple registration page which is very simillar to FOD customer registration using EJBs instead of ADF BC.
I can achieve the registration in one page but I wanted to try this using a wizard based process using ADF taskflows.
I created a bounded taskflow with 3 pages. page1 is employee details, page2 is job details, page 3 is the summary page. I have JPA entities for Employee and Jobs and an EJB3 session Facade. I have used the Employees default constructor to create the UI bindings from the constructor section of the data controls. This creates an EmployeesIterator which I use it for bindings on all the three pages.
My question is can I use this Iterator binding in pageflow scope? If yes How do I do this?
The other way is to use a managed bean in pageflow scope and have UI bindings to the variables in managed bean. This option will work but I will not be utilising any of the features of ADF bindings.
Can anyone please suggest which is the better option.
Thanks
VenkateshHi,
pageDef files can be shared, but their instances aren't. The caching is on the data control side, which means that instead of using a constructor you would break up the input form into method calls like
createPerson(String, fn, String ln, String address)
createInterest(String hobby1, String hobby2);
dagging and dropping the method calls should the reate an input form. Submitting the forms allows you to build a new person object on the session facade which at the end is committed. This way the ADF binding works across pages, operating on a single new object
Frank
Ps.: Note that I did not run this example for a test -
Not able to get the value in ADF taskflow on load
Hi,
I have created an ADF task flow. I have created a ViewObject in this ADF taskflow and I am setting the value of this ViewObject using the java API.
The issue is that i need to show the data when this ADF task flow executes first time.
Currently I am getting the blank table in jspx page when ADF task flow is run. Now when I click on a button then I can see the required data in the table.
Please help me to solve this issue.Thanks for the reply.
I have tried placing the code to get the set the data in table and display the same from table in bean constructor, but I am getting table value as null.
Looks like it is not able initialize the table until the jsff page gets loaded.
Does jsff page gets loaded after bean constructor method gets called ? -
Forte Transaction Management & 2PC
Forte Transaction Management & 2PC
The main purpose of 2PC in a distributed transaction manager is
to enable recovery from a failure that occurs during the window
of transaction commit processing. The Forte transaction manager was built
with this in mind but only with respect to the "volatile" (or "in memory")
objects that Forte manages. What this implies is that because Forte stores
objects in memory and not persistently on disk, the requirement of recovery
for these objects is significantly reduced (if not eliminated all together).
Forte follows a distributed 2PC model in that tasks and messages carry
along with them transaction identification and, during commit processing,
every distributed participant is polled for its availability to commit
the transaction. Applications saving persistent data to disk during a
distributed Forte transaction need to concern themselves with the potential
for failure during the commit processing window. Forte's prepare phase polls
each site (confirming a communications link with each distributed participant)
but no prepare request goes to the database primarily because (in release 1 and
2 of forte) no database supported a general distributed two-phase commit
(one could take issue with that in the case of Sybase, but rather than debate
this point, suffice it to say that the general direction in the industry for
support of this functionality was through TP monitors -- more on that later).
Once all sites are ready to commit Forte expects that the commit will
complete successfully. If at this moment, for example, a participating
Sybase server terminates (with data not yet committed) while a participating
Oracle server has already committed its unit of work, then the outcome of
the distributed transaction is inconsistent - if no one has yet committed
Forte will still abort the transaction. This "window of inconsistency"
is documented in the Forte TOOL manual.
Mission critical applications that require distributed transactions can
address this window of inconsistency in a number of ways:
* Utilize a TP monitor such as Encina (see below)
* Log distributed updates in an auxiliary database table (much like a
distributed transaction monitor's transaction-state log). This approach has
been the traditional banking application solution prior to the commercial
availability of products like Encina, Tuxedo, TopEnd, etc.
This solution is somewhat complex and is usually not generic enough
so as not to have to change code every time a new table or database
site is introduced into the application's data model.
* Rearrange the data model in order to eliminate the need for distributed
transactions. This is usually only a temporary solution (with smaller
numbers of active clients) and cannot be applied to complex legacy systems.
With the advent of the X/Open distributed transaction architecture (the
XA Interface) more database vendors have found that by complying with the
XA interface they can plug their database-specific implementation of
transaction into a globally managed transaction, with commit and abort
processing being conducted by a central coordinator. Of course, the
overall transaction manager coordinating the global transaction must
itself, persistently record the state of the different distributed
branches participating in the transaction. A significant portion of
the functionality provided by products such as Encina, Tuxedo, TopEnd and
OpenTP1 is to provide exactly this global transaction management.
Rather than extend the Forte distributed transaction manager with the
functionality necessary to manage and recover distributed transactions
that modify data on disk, Forte has chosen to integrate with the emerging
set of commercial transaction monitors and managers. This decision was
built into the original design of the Forte transaction model (using XA and
early Tuxedo white-papers as guidelines):
* In Forte release 2 an integration with Encina was delivered.
* In January 1997 a press release announced an integration of
OpenTP1 with Forte for release 3.
* The Forte engineering staff is currently investing integration
with other transaction management products as well.
Neil Goodman,
Forte Development.You don't. ("manage" a transaction)
There is nothing really to "manage".
A transaction is automatically started when you make any changes to data (e.g. fire off a DML statement).
You simply needs to issue a COMMIT or ROLLBACK when needed. A COMMIT at the end of the business transaction and not before (i.e. no committing every n number of rows). A ROLLBACK when hitting an exception or business logic error that requires the uncommitted changes to be undone.
That in a nutshell is it. It is that simple.
Oracle also supports creating savepoints and rolling back only some changes made thus far in the transaction.
The only other thing to keep in mind that a DDL in Oracle issues an implicit commit. Firing off a DDL with cause any exiting uncommitted transaction to be committed.
Transaction "logic/management" should not be made more complex than this. -
Error while Running Receiving Transaction Manager
Hi.,
We have 11..5.10.2 on AIX 5.3 intermeditley we are getting the below error for Receiving Transaction Manager. for temporary sloution we will restart the Receiving Transaction Manager is there any permanent solution for this.....?
we have two Receiving Transaction Manager process.
Error
"APP 00204: Concurrent manager encountered an error while running the spawned
concurrent program Receiving Transaction Manager: rcvoltm TM:Timeout"Hello.
Have a look on MOS Doc ID 1071727.1
Octavio -
How to get BPM Payload attribute value in ADF TaskFlow
Hi,
Activities which I did : I have created ADF Project. Then I created ADF TaskFlow through 'ADF TaskFlow Based on Human Task' option by locating BPM task. So now TaskFlow is been generated and also respective dataControl value also generated. In TaskFlow I created new .jspx file. I am going to design this jspx page by drag and drop from VO instances from dataControl. So for this jspx page, at runtime value will be populated from DB Table.
My Requirement : When the Flow initiated, there will be Parameter value passed to the TaskFlow through Payload which is available in DataControl. So now I based on the Payload parameter value I need to filter DBTable and show the respective value in jspx page which I created in TaskFlow. So getting Payload value and applying filter on VO based on Payload parameter value has to be done before rendering Page.
I tried to achieve this schenario as like below :
- Assume like there is attribute called 'transactionId', for which value will be passed to the TaskFlow through DataControl. I created VO based on EO and appended where clause as : "VO.Trans_Id = : bindVar". Created bindVariable called 'bindVar'. In jspx page I just Drag and Dropped VO instance as form. And also I drag and Dropped 'transactionId' as outputText from Payload. And also I created ExecuteWithParams in Binding section of PageDef and mapped that one with invokeAction item in executable section. So now both payload Iterator and invokeAction will be created in PageDef. I kept Iterator as in the order of : PayloadIterator at first and InvokeAction second one, So that at runtime it will execute in that order. And also I given "refresh" property to payloadIterator and invokeAction to 'renderModel' and I mapped PayloadIterator id to refreshAfter property of InvokeAction iterator. Now at runtime, So at runtime updated/Newvalue will be retrived to Payload attribute by executing payloaditerator. So now for 'transactionId' value vill be retrieved. Next invokeAction will take value from newly retrieved 'transactionId' as input and execute query. So now VO will be filtered and need to be shown. But instead of that getting error saying like 'No outcome metadata specified for method call activity 'null'.'
Is this way is correct? If yes, then What mistake which I have done?
Is any other way to acieve this schenario?
Do the needful.
Thanks with Regards,
PraveenKumar.NGuessing you might have looked at this at some point, but you might want to consider using the setCurrentRowWithKeyValue method to do this.
Here's a blog post that I wrote a while back that goes through step-by-step what I think you're trying to accomplish: Using a BPM Process Variable on an ADF form to Retrieve Database Information | AVIO Consulting
Hope this helps,
Dan -
Transaction management in stateless session beans.
Hi all,
I am using EJB 1.1.
I have a statless session bean that has two methods- A and B.
which does not involve any database interaction
like inserting/updating/deleting the data in the database.
The process flow is such the client always calls A first followed by the call to B.
I have the Transaction attribute set as TX_REQUIRED at the whole bean level.
Now my question is as follows:
Since it is a stateless bean, ejbCreate() is called for every method's invocation.
So does it mean that a new transaction is started for every method invocation?
Also since a transaction ends by commit/rollback.
The transation associated with the method A/B will never get completed as there is no commit/rollback involved in method implementation.
So how is this transaction ended?
Any more details about the transaction management in stateless session beans is highly appreciated.
Any input at the earliest is highly appreciated.
Thanks in advance.Since it is a stateless bean, ejbCreate() is called for every method's invocation.For stateless session bean , Create() is not delegated to the instance.
So does it mean that a new transaction is started for every method invocation?This depends opon the Tx attribute and sequence of calls. Since you have given Tx_required then if you call any method and there is no Tx context associated with client,then a new TX will be started by container othere wise it will execute in the same TX context as the calling client. Note that client can be jsp or other ejb method.
Also since a transaction ends by commit/rollback.
The transation associated with the method A/B will never get completed >as there is no commit/rollback involved in method implementation.
So how is this transaction ended?If you are using COntainer managed TX then Transaction handling like starting , ending etc is handled by the container. You need not worry about that.
Any more details about the transaction management in stateless session >beans is highly appreciated.
Any input at the earliest is highly appreciated.Some time back I had read the article on how the Transaction management done by container on IBM Site. I dont have URL , but you can search the site.
HTH
-Ashwani -
Receiving Transaction Manager Time out in iProcurement Receiving!
Hi All,
Database:10.2.0.4.0
Oracle Aps:12.0.6
O/S:AIX 64 bits 5.3 L
We are unable to create any receipts due to following error.Checked Receiving Transaction Manager and that is running fine.
Error Message
Your receipt could not be created successfully because your receiving transaction manager timed out.
Please contact your System Administrator for further assistance.
Steps To Reproduce
The issue can be reproduced at will with the following steps:
1. In Iprocurement select requisition to receive
2. Enter required data and press submit
3. on screen receive Items: review and submit get above error message
Profile RCV: Processing Mode is currently set to 'online'
Could anyone please share resolution to such an issue faced before.
Thanks for your time!
Regards,Follow the Metalink ID: 375152.1
-
ScrollBar Behaviour of ADF Taskflows rendered as Inline Popup
Hi All,
I am using Jdeveloper 11.1.1.5.
I have created a bounded Taskflow and then i have used two other taskflow in my current taskflow as Inline Popup.Functionality wise everything works fine but if my given taskflow size i.e the window width and height parameters are small then the page content then automatically the Scroll bar comes into the Taskflow at runtime.
It is good to have a scroll bar automatically but it doesn't work in a correct manner. When my page render , the scroll bar is situated at the edges of the taskflow .Now if i go down , automatically scroll happens and comes to the default position.
This makes users bit in a hazy situation. I don't want the scrollbar in the ADF Taskflow which rendered as Inline Popup.I want the scrollBar inside thr page which can help users to do scroll in a proper way.
Is there any way to achieve this ?
Regards,
ShahHi All,
Any suggestions please on this.
Regards,
Shah
Maybe you are looking for
-
When trying to restore or update my Iphone 4 it errors out with message:..."could not be restored because the firmware file is not compatible." How do I resolve this?
-
Address Book Sync running slow parallels and mac (iCloud)
Briefly, every time that "address book sync" becomes active on the Mac side, the computer on both the Mac and the Windows side becomes incredibly slow, almost usable. If I disable the "address book sync" through the activity monitor (force quit), the
-
Purchase order from production order !! (Missing material no)
Hi, This purchase order is created directly from production order.( My problem is the material number is no where shown on PO. but when I print it (print preview) i can see the material number along with the Production order number. I am writing a ne
-
Facebook is not loading after 3.6 upgrade
Hi there. After my firefox was automatically upgraded to 3.6, Facebook did not work anymore. Facebook.com loads, but after I log on, nothing happens if I click on anything. If I right click and try and open something in a new tab, the page does not l
-
Hi ALL My issue is as follows: T-Code:ME21N,ME22N (PO Creation,Modification) Logic:Compare company code of line items with PO header company code. If both are different issue error message and PO will not be created/modified. If both are different, i