I am having problems getting OFBiz to work with MS SQL. OFBiz works with MS SQL during the setup (creating tables, importing all seed data), but it seems to be having database locks when I import an order. This import service is a custom service I developed and it works on MySQL with no problems.
Without getting into detail of the custom code, it basically creates a new transaction and creates an order. The code freezes when I call dispatcher.runAsync("sendOrderConfirmation"). I've parsed deep into this code and it specifically freezes at the point where it attempts to run this SQL: SELECT RUNTIME_INFO, LAST_UPDATED_STAMP, LAST_UPDATED_TX_STAMP, CREATED_STAMP, CREATED_TX_STAMP FROM dbo.RUNTIME_DATA WHERE RUNTIME_DATA_ID=? It looks like the Async call creates it's own new transaction and is blocked because the previous transaction also accessed RUNTIME_DATA. The database shows 2 processes are blocked from a different, single process. It looks like this "blocker" process is the main transaction I open when I create the order. I am sure one blocked processes is the transaction that is opened when I call sendOrderConfirmation. The profiler shows the "blocker" process last executes "sp_cursorclose". I have only found 1 related posting that is of no help: http://lists.ofbiz.org/pipermail/users/2004-January/002817.html We are using OFBiz 4.0 and jTDS v.1.2.2 for the driver. I have useCursors=true set in the entityengine jdbc-uri config. We have followed the directions for jTDS to install the XA procedures. We have tried MS SQL's driver and have the same exact problem. Does anyone have any ideas as to where we messed up? I am told the XA features are suppose to handle this. Is there any way we can verify that we installed XA correctly? Am I using OFBiz transactions wrong? // begin a transaction boolean beganTransaction = false; beganTransaction = TransactionUtil.begin(transactionTimeout); |
I noticed that we were missing steps on enabling XA transactions for MS SQL. I followed the official install steps (http://msdn.microsoft.com/en-us/library/aa342335(SQL.90).aspx) and still having the same error. I am now using the MSSQL JDBC 1.1 driver.
Should the profiler show the use of the XA procedures? Do I need to set the pool-xa-wrapper-class in <inline-jdbc>? |
In reply to this post by mayo
need to upgrade the pool to what the trunck uses.
not an easy task. can't find the fAQ on it hopefully Jacques will jump in since he supplied the info last time. mayo sent the following on 4/24/2009 4:04 PM: > I noticed that we were missing steps on enabling XA transactions for MS SQL. > I followed the official install steps > (http://msdn.microsoft.com/en-us/library/aa342335(SQL.90).aspx) and still > having the same error. I am now using the MSSQL JDBC 1.1 driver. > > Should the profiler show the use of the XA procedures? Do I need to set the > pool-xa-wrapper-class in <inline-jdbc>? > -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com Systems Integrator. |
This may or may not be related to the connection pool. That is certainly issue that has been improved in the trunk, but the behavior (if I remember right) was not something you would typically see in testing, only stale transactions and such on servers that have been live for a while. This particular problems sounds like a good old deadlock with a thread A waiting on thread B and thread B is trying to get read something thread A has a lock on. With custom code it's impossible to tell without reviewing the code... On a side note, there have also been some improvements to service engine job concurrency support in the trunk that may address these. Is there a reason you are using the old release4.0 branch? -David On Apr 24, 2009, at 5:11 PM, BJ Freeman wrote: > need to upgrade the pool to what the trunck uses. > not an easy task. > can't find the fAQ on it > hopefully Jacques will jump in since he supplied the info last time. > > mayo sent the following on 4/24/2009 4:04 PM: >> I noticed that we were missing steps on enabling XA transactions >> for MS SQL. >> I followed the official install steps >> (http://msdn.microsoft.com/en-us/library/aa342335(SQL.90).aspx) and >> still >> having the same error. I am now using the MSSQL JDBC 1.1 driver. >> >> Should the profiler show the use of the XA procedures? Do I need >> to set the >> pool-xa-wrapper-class in <inline-jdbc>? >> > > -- > BJ Freeman > http://www.businessesnetwork.com/automation > http://bjfreeman.elance.com > Systems Integrator. > |
Deadlock is exactly the problem. I started with the 4.0 branch back in November because I thought it would be better tested and would have less errors from all the new updates on trunk. Since then, I have made many customizations and have a nearing deadline that will make it hard for me to start from the trunk. I would love to simply use MySQL, but other factors are requiring I use MSSQL.
So I guess I have to integrate the trunk pool logic...... Jacques (or anyone for that matter), if you could get me pointed in the right direction I am pretty comfortable with OFBiz that I think I can get it integrated. Maybe I can help out the community by documenting my changes and making a patch for the current 4.0 release.
|
On Apr 24, 2009, at 6:02 PM, mayo wrote: > > Deadlock is exactly the problem. I started with the 4.0 branch back in > November because I thought it would more tested and would have less > errors > from all the new updates on trunk. Since then, I have made many > customizations and have a nearing deadline that will make it hard > for me to > start from the trunk. I would love to simply use MySQL, but other > factors > are requiring I use MSSQL. > > So I guess I have to integrate the trunk pool logic...... I would HIGHLY recommend verifying that is the problem before trying to fix it (mainly because I don't think that is the problem). > Jacques (or anyone for that matter), if you could get me pointed in > the > right direction I am pretty comfortable with OFBiz that I think I > can get it > integrated. Maybe I can help out the community by documenting my > changes > and making a patch for the current 4.0 release. If you find the issue and a fix for it a patch for the release4.0 branch would be great. This is related to your thoughts above about it having less errors... keep in mind that the one that has the most users is the one that will typically have the most errors found and fixed, and somewhat ironically that often means the trunk. -David > David E Jones-3 wrote: >> >> This particular problems sounds like a good old deadlock with a >> thread >> A waiting on thread B and thread B is trying to get read something >> thread A has a lock on. With custom code it's impossible to tell >> without reviewing the code... >> >> On a side note, there have also been some improvements to service >> engine job concurrency support in the trunk that may address these. >> Is >> there a reason you are using the old release4.0 branch? >> >> -David >> >> > > -- > View this message in context: http://www.nabble.com/MS-SQL-and-OFBiz%2C-database-locks-on-transactions-tp23225473p23226753.html > Sent from the OFBiz - User mailing list archive at Nabble.com. > |
Administrator
|
I backported DPCP changes for a client and could create a FAQ wiht a patch for that (I guess I'm not the only one who did that ;o)
But as suggested David it would be better to be sure before that it's the cause of your problem. Jacques From: "David E Jones" <[hidden email]> > > On Apr 24, 2009, at 6:02 PM, mayo wrote: > >> >> Deadlock is exactly the problem. I started with the 4.0 branch back in >> November because I thought it would more tested and would have less >> errors >> from all the new updates on trunk. Since then, I have made many >> customizations and have a nearing deadline that will make it hard >> for me to >> start from the trunk. I would love to simply use MySQL, but other >> factors >> are requiring I use MSSQL. >> >> So I guess I have to integrate the trunk pool logic...... > > I would HIGHLY recommend verifying that is the problem before trying > to fix it (mainly because I don't think that is the problem). > >> Jacques (or anyone for that matter), if you could get me pointed in >> the >> right direction I am pretty comfortable with OFBiz that I think I >> can get it >> integrated. Maybe I can help out the community by documenting my >> changes >> and making a patch for the current 4.0 release. > > If you find the issue and a fix for it a patch for the release4.0 > branch would be great. This is related to your thoughts above about it > having less errors... keep in mind that the one that has the most > users is the one that will typically have the most errors found and > fixed, and somewhat ironically that often means the trunk. > > -David > > >> David E Jones-3 wrote: >>> >>> This particular problems sounds like a good old deadlock with a >>> thread >>> A waiting on thread B and thread B is trying to get read something >>> thread A has a lock on. With custom code it's impossible to tell >>> without reviewing the code... >>> >>> On a side note, there have also been some improvements to service >>> engine job concurrency support in the trunk that may address these. >>> Is >>> there a reason you are using the old release4.0 branch? >>> >>> -David >>> >>> >> >> -- >> View this message in context: http://www.nabble.com/MS-SQL-and-OFBiz%2C-database-locks-on-transactions-tp23225473p23226753.html >> Sent from the OFBiz - User mailing list archive at Nabble.com. >> > |
Administrator
|
BTW the changes I backported was on a Neogia instance based on release 4.0 (or near) and was on a CVS repository...
Jacques From: "Jacques Le Roux" <[hidden email]> >I backported DPCP changes for a client and could create a FAQ wiht a patch for that (I guess I'm not the only one who did that ;o) > But as suggested David it would be better to be sure before that it's the cause of your problem. > > Jacques > > From: "David E Jones" <[hidden email]> >> >> On Apr 24, 2009, at 6:02 PM, mayo wrote: >> >>> >>> Deadlock is exactly the problem. I started with the 4.0 branch back in >>> November because I thought it would more tested and would have less >>> errors >>> from all the new updates on trunk. Since then, I have made many >>> customizations and have a nearing deadline that will make it hard >>> for me to >>> start from the trunk. I would love to simply use MySQL, but other >>> factors >>> are requiring I use MSSQL. >>> >>> So I guess I have to integrate the trunk pool logic...... >> >> I would HIGHLY recommend verifying that is the problem before trying >> to fix it (mainly because I don't think that is the problem). >> >>> Jacques (or anyone for that matter), if you could get me pointed in >>> the >>> right direction I am pretty comfortable with OFBiz that I think I >>> can get it >>> integrated. Maybe I can help out the community by documenting my >>> changes >>> and making a patch for the current 4.0 release. >> >> If you find the issue and a fix for it a patch for the release4.0 >> branch would be great. This is related to your thoughts above about it >> having less errors... keep in mind that the one that has the most >> users is the one that will typically have the most errors found and >> fixed, and somewhat ironically that often means the trunk. >> >> -David >> >> >>> David E Jones-3 wrote: >>>> >>>> This particular problems sounds like a good old deadlock with a >>>> thread >>>> A waiting on thread B and thread B is trying to get read something >>>> thread A has a lock on. With custom code it's impossible to tell >>>> without reviewing the code... >>>> >>>> On a side note, there have also been some improvements to service >>>> engine job concurrency support in the trunk that may address these. >>>> Is >>>> there a reason you are using the old release4.0 branch? >>>> >>>> -David >>>> >>>> >>> >>> -- >>> View this message in context: http://www.nabble.com/MS-SQL-and-OFBiz%2C-database-locks-on-transactions-tp23225473p23226753.html >>> Sent from the OFBiz - User mailing list archive at Nabble.com. >>> >> > |
The reason I think it's deadlock is because when I kill the "blocker" process in the database, OFBiz becomes unfrozen. I will run a profiler to make sure that both processes are hitting the RUNTIME_DATA table, but other than that how would I verify even more that it is the problem? What do you think the problem is? Since it does not happen in MySQL, does this mean a setting in MSSQL or the driver would make it work and does it still mean the pool is the problem?
|
Also, I am very surprised no one else has had this error. This tells me that it is some other setting on the server or the driver, but what I've found are definitely facts:
- OFBiz freezes in wait when it tries to execute RUNTIME_DATA through the path of executing dispatcher.runAsync - the database shows 2 blocked processes, the last of which was created by runAsync - the problem happens with 2 separate MSSQL jdbc drivers - the blocker process last executes "sp_cursorclose" - kill the blocker process and OFBiz unfreezes I will do some more troubleshooting and get back to you. |
In reply to this post by mayo
I use to use MS-SQL but stopped at ver 7.
I still run them. I use the jtds drivers. I now use postgressql exclusively, so I am not much help as to quirks of 2005. on of the ways I tested if it was the SQL server is I made the SP permanent under a different name then wrote code to call them, from the SQL server it self. This let me know if the server had a problem with the procedure. I have a feeling that the problem is MS-SQL and/or the jbc driver. mayo sent the following on 4/25/2009 6:28 AM: > Also, I am very surprised no one else has had this error. This tells me that > it is some other setting on the server or the driver, but what I've found > are definitely facts: > - OFBiz freezes in wait when it tries to execute RUNTIME_DATA through the > path of executing dispatcher.runAsync > - the database shows 2 blocked processes, the last of which was created by > runAsync > - the problem happens with 2 separate MSSQL jdbc drivers > - the blocker process last executes "sp_cursorclose" > - kill the blocker process and OFBiz unfreezes -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator. |
Here is the OFBiz log at the point of failure. It freezes at "Got bank of sequenced IDs for [JobSandbox]". This is actually the first time I've seen it freeze here. Usually it freezes 1 line above at the "ASync service started... sendOrderConfirmation". The rest is the error that is thrown when I manually kill the blocking process.
The database shows 3 processes, 2 blocked (SPID 56, 57) and 1 awaiting a command (SPID 52). Here are the last things that each process tries to execute.
It looks like both blocked processes are updating and selecting on SEQUENCE_VALUE_ITEM. I found very early in the profiler that the "blocker" process (52) does an update on the same table.
Here is what the 2 blocked processes execute immediately after I kill process 52
I will try to create a small focused service that will duplicate the error. |
In reply to this post by mayo
It's fairly simple, the code you have written (including configuration settings for service defs, etc) has caused a deadlock. To fix it, change your code. As for MySQL versus MSSQL... well... it is an oft-lamented fact that MySQL is not as strict as other databases about pesky things like "transactions" and "foreign keys". Of course, in this case it may simply be different transaction isolation levels you are using for the different databases. It is certainly the case the a deadlock in one tx isolation level will have no problem in a less strict one. -David On Apr 25, 2009, at 7:19 AM, mayo wrote: > > The reason I think it's deadlock is because when I kill the > "blocker" process > in the database, OFBiz becomes unfrozen. I will run a profiler to > make sure > that both processes are hitting the RUNTIME_DATA table, but other > than that > how would I verify even more that it is the problem? What do you > think the > problem is? Since it does not happen in MySQL, does this mean a > setting in > MSSQL or the driver would make it work and does it still mean the > pool is > the problem? > > > David E Jones-3 wrote: >> >> >>>> I would HIGHLY recommend verifying that is the problem before >>>> trying >>>> to fix it (mainly because I don't think that is the problem). >> >> > > -- > View this message in context: http://www.nabble.com/MS-SQL-and-OFBiz%2C-database-locks-on-transactions-tp23225473p23232044.html > Sent from the OFBiz - User mailing list archive at Nabble.com. > |
I have my services use-transaction set to false and manually create a transaction before importing an order. In fact, I copied all my code from existing OFBiz processes. The difference (and problem) is I am creating the whole order at once (customer, address, payment methods). Each step is hooked into existing OFBiz methods and services.
This specific deadlock is happening when I call OFBiz services through runSync. One process is kicked off when I call dispatcher.runSync("createPerson") and another is kicked off in the OFBiz method where a payment response is created (maybe checkout.processPayment). If executions are their own processes, then it's not using my main transaction and they are creating their own transactions, right? Should runSync be shooting off a new process? Is this something that is working differently in the trunk version? I think it's deadlocking because the "side process" with its own transaction is trying to access something the main process has accessed (a common table like runtime_data or sequence_value_item) or visa versa. Since it's locking up with the main process is calling runAsync, I would say the latter. If what I say is true, then the solution isn't so simple--I would need to modify my code to not call any services synchronously. I would need to copy all the code in the needed service into my main function that creates the order. I will continue to try to create a small example that exposes the error so that my custom code will not be in question.
|
In reply to this post by David E Jones-3
see inline
mayo sent the following on 4/25/2009 11:49 AM: > I have my services use-transaction set to false and manually create a > transaction before importing an order. In fact, I copied all my code from > existing OFBiz processes. The difference (and problem) is I am creating the > whole order at once (customer, address, payment methods). Each step is > hooked into existing OFBiz methods and services. > I have a similar routine that imports realtime orders into ofbiz. it has no problems, though I am using postgresql. it processes up to 15 persec. > This specific deadlock is happening when I call OFBiz services through > runSync. One process is kicked off when I call > dispatcher.runSync("createPerson") and another is kicked off in the OFBiz > method where a payment response is created (maybe checkout.processPayment). > If executions are their own processes, then it's not using my main > transaction and they are creating their own transactions, right? Should > runSync be shooting off a new process? Is this something that is working > differently in the trunk version? > Are you synchronous all the way through the process before starting a new process? This means that no other process, you are doing is starting before the last one finishes. > I think it's deadlocking because the "side process" with its own transaction > is trying to access something the main process has accessed (a common table > like runtime_data or sequence_value_item) or visa versa. Since it's locking > up with the main process is calling runAsync, I would say the latter. The flow is important. > > If what I say is true, then the solution isn't so simple--I would need to > modify my code to not call any services synchronously. I would need to copy > all the code in the needed service into my main function that creates the > order. > do you mean Asynchronous? > I will continue to try to create a small example that exposes the error so > that my custom code will not be in question. as thought how about going into the database and create some triggers to help the deadlocks, as a last resort. > > > > > David E Jones-3 wrote: >> >> It's fairly simple, the code you have written (including configuration >> settings for service defs, etc) has caused a deadlock. To fix it, >> change your code. >> >> As for MySQL versus MSSQL... well... it is an oft-lamented fact that >> MySQL is not as strict as other databases about pesky things like >> "transactions" and "foreign keys". Of course, in this case it may >> simply be different transaction isolation levels you are using for the >> different databases. It is certainly the case the a deadlock in one tx >> isolation level will have no problem in a less strict one. >> >> -David >> >> > -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator. |
It would be interesting for me to see if it works on postgresql. It has worked on MySQL with no problems for 4-5 months. What do you have your isolation level set to on postgresql? Yes my process is completely synchronous except for when I call sendConfirmation. Other than that, I use existing OFBiz services (called synchronously) and existing OFBiz methods (that sometimes call their own services synchronously). No, I actually mean synchronously because from my current findings it looks as though my synchronous calls are, for some reason, spawning separate database threads. I am assuming these new threads have their own transactions, thus creating the deadlock. One way to solve this is to ensure my process does not use runSync. This is still an assumption though, because I need to verify that the runSync is spawning its own thread with its own transaction. This is a very good suggestion. I will be doing more research on the exact problem and will probably try a different isolation level, ReadUncommited. If that doesn't work and my research doesn't lead me elsewhere, I will attempt to work some triggers in. Thanks BJ. |
In reply to this post by BJ Freeman
using the one set in the entityengine.xml for isolation level.
mayo sent the following on 4/25/2009 6:17 PM: > > BJ Freeman wrote: >> I have a similar routine that imports realtime orders into ofbiz. >> it has no problems, though I am using postgresql. >> it processes up to 15 persec. >> > > It would be interesting for me to see if it works on postgresql. It has > worked on MySQL with no problems for 4-5 months. What do you have your > isolation level set to on postgresql? > > > BJ Freeman wrote: >> Are you synchronous all the way through the process before starting a >> new process? This means that no other process, you are doing is starting >> before the last one finishes. >> > > Yes my process is completely synchronous except for when I call > sendConfirmation. Other than that, I use existing OFBiz services (called > synchronously) and existing OFBiz methods (that sometimes call their own > services synchronously). > > > BJ Freeman wrote: >>> If what I say is true, then the solution isn't so simple--I would need to >>> modify my code to not call any services synchronously. I would need to >>> copy >>> all the code in the needed service into my main function that creates the >>> order. >>> >> do you mean Asynchronous? >> > > No, I actually mean synchronously because from my current findings it looks > as though my synchronous calls are, for some reason, spawning separate > database threads. I am assuming these new threads have their own > transactions, thus creating the deadlock. One way to solve this is to ensure > my process does not use runSync. This is still an assumption though, > because I need to verify that the runSync is spawning its own thread with > its own transaction. > > > > BJ Freeman wrote: >> as thought how about going into the database and create some triggers to >> help the deadlocks, as a last resort. >> > > This is a very good suggestion. I will be doing more research on the exact > problem and will probably try a different isolation level, ReadUncommited. > If that doesn't work and my research doesn't lead me elsewhere, I will > attempt to work some triggers in. > > Thanks BJ. > -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator. |
I found out more about how the deadlock is happening, but first let me say that setting the isolation level to read-uncommitted worked. Does anyone have any experience using read-uncommitted with OFBiz 4.0 on MSSQL? I cannot figure out the logic behind the process threads in the database, but I've meticulously stepped through the code to find out when they are created. Can anyone tell me if this is characteristic of the 4.0 thread logic and is different/fixed in the trunk logic?
--------------- The first thread, lets say thread-A, is used to start the creation of the order. It looks like a second thread, thread-B, is created to handle "side jobs" like updating and selecting from the JOB_SANDBOX and to get the SEQUENCE_VALUE for an entity. I was incorrect in saying synchronous executions start a new thread because thread-A continues to handle almost every command in the main process flow. The first block comes in the createOrder method. When "addSuggestionsToShoppingList" is triggered, Thread-A inserts a row into JOB_SANDBOX. When Thread-B continues its "side jobs" and tries to run an update on JOB_SANDBOX, but it cannot because Thread-A has an open transaction. This block doesn't freeze the application, so if the next event didn't happen, everything would be fine. The second block (and deadlock) happens when I try to call runAsync("sendEmailConfirmation"). The main process flow begins to enter in new RuntimeData and JobSandbox entities with storeAll(). The GenericDelegator goes to locate the primary key for the RuntimeData with a select statement. For some reason a third thread, Thread-C, is used to do this select statement--maybe because Thread-B is blocked. When Thread-C executes the select on RUNTIME_DATA, the deadlock occurs because Thread-B previously inserted on RUNTIME_DATA, but can't finish. To summarize the confusion, Thread-A is waiting on Thread-C, who is waiting on Thread-B, who is waiting on Thread-A. According to the code, everything is using the same transaction. The only time I see the main transaction is suspended is to run the payment services, but this code executes fine. I can see how my code facilitates the problem by executing all the methods and services to create a full order, but I think it is the pool/thread logic that creates the deadlock. --------------- Does this happen to spark anyone's memory about a problem they've had with OFBiz 4.0? Even though ReadUncommitted may work, I want information to decide if I will need to backport the trunk pool logic. |
This looks very interesting and I would love to dig into it more, is there any way you could send me a patch that would enable this issue to be recreated on an unmodified install?
Thanks Scott HotWax Media On 28/04/2009, at 7:56 AM, mayo wrote:
smime.p7s (3K) Download Attachment |
In reply to this post by BJ Freeman
couple of links you might be interested in
http://msdn.microsoft.com/en-us/library/ms173763.aspx http://support.microsoft.com/kb/237686 mayo sent the following on 4/27/2009 12:56 PM: > I found out more about how the deadlock is happening, but first let me say > that setting the isolation level to read-uncommitted worked. Does anyone > have any experience using read-uncommitted with OFBiz 4.0 on MSSQL? I > cannot figure out the logic behind the process threads in the database, but > I've meticulously stepped through the code to find out when they are > created. Can anyone tell me if this is characteristic of the 4.0 thread > logic and is different/fixed in the trunk logic? > > --------------- > > The first thread, lets say thread-A, is used to start the creation of the > order. It looks like a second thread, thread-B, is created to handle "side > jobs" like updating and selecting from the JOB_SANDBOX and to get the > SEQUENCE_VALUE for an entity. I was incorrect in saying synchronous > executions start a new thread because thread-A continues to handle almost > every command in the main process flow. > > The first block comes in the createOrder method. When > "addSuggestionsToShoppingList" is triggered, Thread-A inserts a row into > JOB_SANDBOX. When Thread-B continues its "side jobs" and tries to run an > update on JOB_SANDBOX, but it cannot because Thread-A has an open > transaction. This block doesn't freeze the application, so if the next > event didn't happen, everything would be fine. > > The second block (and deadlock) happens when I try to call > runAsync("sendEmailConfirmation"). The main process flow begins to enter in > new RuntimeData and JobSandbox entities with storeAll(). The > GenericDelegator goes to locate the primary key for the RuntimeData with a > select statement. For some reason a third thread, Thread-C, is used to do > this select statement--maybe because Thread-B is blocked. When Thread-C > executes the select on RUNTIME_DATA, the deadlock occurs because Thread-B > previously inserted on RUNTIME_DATA, but can't finish. > > To summarize the confusion, Thread-A is waiting on Thread-C, who is waiting > on Thread-B, who is waiting on Thread-A. According to the code, everything > is using the same transaction. The only time I see the main transaction is > suspended is to run the payment services, but this code executes fine. I can > see how my code facilitates the problem by executing all the methods and > services to create a full order, but I this it is the pool/thread logic that > creates the deadlock. > > --------------- > > Does this happen to spark anyone's memory about a problem they've had with > OFBiz 4.0? Even though ReadUncommitted may work, I want information to > decide if I will need to backport the trunk pool logic. -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator. |
Free forum by Nabble | Edit this page |