While changing from OCI to DirectMode, we get the error "ORA-01483: invalid length for DATE or NUMBER" in one of our updates:
UPDATE PUMA_WORKFLOW_EXECUTION SET STATUS_ID = :p1, PROCESSING_SERVER = :p2 WHERE ID = :key1 AND STATUS_ID = :chk1 AND ((:nullchk2 = 1 AND PROCESSING_SERVER IS NULL) OR (PROCESSING_SERVER = :chk2))
-- p1: Input Number (Size = 0; DbType = Decimal) [2]
-- p2: Input NVarChar (Size = 36; DbType = String) [1c593409-991c-4fe5-b787-6bb10b6df9ae]
-- key1: Input Number (Size = 0; DbType = Decimal) [122336]
-- chk1: Input Number (Size = 0; DbType = Decimal) [1]
-- nullchk2: Input Integer (Size = 0; DbType = Int32) [1]
-- chk2: Input NVarChar (Size = 0; DbType = String) []
-- Context: Devart.Data.Oracle.Linq.Provider.OracleDataProvider Model: am Build: 1.0.43.0
This is the table creation SQL:
-- Create table
create table PUMA_WORKFLOW_EXECUTION
(
ID NUMBER(9) not null,
WORKFLOW_INSTANCE_ID NUMBER(9),
STATE_SEQUENCE NUMBER(9),
TASK_SEQUENCE NUMBER(9),
ACTION_SEQUENCE NUMBER(9),
STATUS_ID NUMBER(9) not null,
FINISHED NUMBER(1) default 0 not null,
COMMENTS NVARCHAR2(4000),
PROCESSING_SERVER NVARCHAR2(50),
MODIFICATION_DATE TIMESTAMP(6),
WORKFLOW_ID NUMBER(9) not null,
PRODUCT_ID NUMBER(9),
STATEFUL_OBJECT_ID NUMBER(9),
CHILD_PRODUCT_ID NUMBER(9),
PREDECESSOR_ID NUMBER(9),
PARENT_ID NUMBER(9),
RETRY_COUNT NUMBER(9) default 0 not null,
SOPHIS_USER_ID NUMBER(9)
);
Regards,
Search found 34 matches
- Thu 27 Jan 2011 18:05
- Forum: dotConnect for Oracle
- Topic: ORA-01483: invalid length for DATE or NUMBER
- Replies: 14
- Views: 20880
- Thu 20 Jan 2011 14:37
- Forum: dotConnect for Oracle
- Topic: Transaction does not match the DataContext.Connection
- Replies: 3
- Views: 2161
Hi Stanislav,
yes I meant:
There is nothing special about our context handling. We have only one context per thread (this for sure). It is always started with an using clause
By multithreading I just meant that our application, being a service provider, launch one query per thread. And I guess it is your connection pooling which is messing with things.
Also, the "do something" and "do another thing" can be really multiple calls to multiple statements doing a lot of things and maybe doing more than two SubmitChanges
This error does not happen all the time. It happens from time to time.
yes I meant:
Code: Select all
context.Transaction = context.Connection.BeginTransaction();
Code: Select all
using (var context = new DataContext())
Also, the "do something" and "do another thing" can be really multiple calls to multiple statements doing a lot of things and maybe doing more than two SubmitChanges
This error does not happen all the time. It happens from time to time.
- Tue 18 Jan 2011 18:44
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
Hi,
today I've tried the Db Monitor with no special results. I see the statements in the log, but no special reason for it to hang
LOG
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot3-2011-01-18 07:00:45.5162=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SELECT t2.ID, t2.WORKFLOW_ID, t2.TASK_ID, t2.TYPE AS "TYPE", t2.PROPRITY, t2.RESP_BU_ID, t2.CREATE_DATETIME, t2.CLOSED_DATETIME, t2.MESSAGE, t2.MODIFIED_DATETIME, t2.DESCRIPTION, t2.PARENT_WORKITEM_ID, t2.GROUP_IDEN, t2.ORIGINAL_TYPE
FROM PUMA_WORKFLOW_INSTANCE t1, PUMA_WORKITEM t2
WHERE (t1.PRODUCT_ID = :p0) AND (t1.STATEFUL_OBJECT_ID IS NULL) AND (t1.ID = t2.WORKFLOW_ID) AND (NOT (t2.ID IS NULL)) AND (t2.CLOSED_DATETIME IS NULL) - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SELECT t2.ID, t2.WORKFLOW_ID, t2.TASK_ID, t2.TYPE AS "TYPE", t2.PROPRITY, t2.RESP_BU_ID, t2.CREATE_DATETIME, t2.CLOSED_DATETIME, t2.MESSAGE, t2.MODIFIED_DATETIME, t2.DESCRIPTION, t2.PARENT_WORKITEM_ID, t2.GROUP_IDEN, t2.ORIGINAL_TYPE
FROM PUMA_WORKFLOW_INSTANCE t1, PUMA_WORKITEM t2
WHERE (t1.PRODUCT_ID = :p0) AND (t1.STATEFUL_OBJECT_ID IS NULL) AND (t1.ID = t2.WORKFLOW_ID) AND (NOT (t2.ID IS NULL)) AND (t2.CLOSED_DATETIME IS NULL) - Extra info: -1
2011-01-18 19:04:24,871 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,871 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Sotas.ProductSession Found 1 workitems to update for productId=1479917
2011-01-18 19:04:24,871 DEBUG [p526918=>GetWorkItems(WorkItemFilter[MyLineWorkItems, TasksOpenAndInProgress],0)] Puma.Util.DurationCounter GetWorkItems took 46.8753 msecs
2011-01-18 19:04:24,886 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SELECT t1.ID, t1.DEFINITION_ID, t1.TASK_STATUS, t1.RESPONSIBLE_BU_MEMBER_ID, t1.LOCKED_DATE_TIME, t1.END_DATE_TIME, t1.STATE_ID, t1.DUE_DATE, t1.ESCALATION_DATE
FROM PUMA_TASK_INSTANCE t1
WHERE :np0 = t1.ID - Extra info:
2011-01-18 19:04:24,886 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SELECT t1.ID, t1.DEFINITION_ID, t1.TASK_STATUS, t1.RESPONSIBLE_BU_MEMBER_ID, t1.LOCKED_DATE_TIME, t1.END_DATE_TIME, t1.STATE_ID, t1.DUE_DATE, t1.ESCALATION_DATE
FROM PUMA_TASK_INSTANCE t1
WHERE :np0 = t1.ID - Extra info: -1
Callstack where it hangs
at OciDynamicType.nativeOCIStmtExecute(HandleRef , HandleRef , HandleRef , Int32 , Int32 , Int32 , Int32 , Int32 )
at OciDynamicType.OCIStmtExecute(HandleRef , HandleRef , HandleRef , Int32 , Int32 , Int32 , Int32 , Int32 )
at Devart.Data.Oracle.ao.a(Int32 A_0, a4 A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1, Object[] A_2, Object A_3)
at Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1)
at Devart.Data.Linq.Provider.DataProvider.b.a(b A_0, Object[] A_1)
at Devart.Data.Linq.Provider.DeferredQuery`3.a(TKeyQuery A_0)
at Devart.Data.Linq.Provider.DefferedEntity`4.a(TKeyQuery A_0)
at Devart.Data.Linq.Provider.DeferredSource`2.b()
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
at System.Data.Linq.EntityRef`1.get_Entity()
at IssuanceEngine.Data.WorkItem.get_Task() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Data.Oracle\IssuanceEngineDbContext.WorkItem.cs:line 504
at IssuanceEngine.Sotas.ProductSession.UpdateOpenWorkItems(PumaDataContext context, Product product) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ProductSession.cs:line 159
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.c__DisplayClassed.b__ec() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2915
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.ExecuteWorkflowStep(PumaDataContext context, String name, Func`1 func) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2941
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.UpdateOpenWorkitems(PumaDataContext context, Int32 productId) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2911
at IssuanceEngine.BusinessObjects.Workflow.WorkflowObjectProcessThread.ProcessNextItem(IWorkflowExecutionStep next) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\Workflow\WorkflowObjectProcessThread.cs:line 99
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.c__DisplayClass6.b__3() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 254
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.CallProtected(Action method) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 350
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.ProcessQueue() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 257
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.MainLoop() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 205
at Puma.Utilities.Threads.ThreadManager.c__DisplayClasse.b__d() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\Puma.Utilities\Threads\ThreadManager.cs:line 335
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Any guesses? Or should we just abandon Devart and try a different implementation?
today I've tried the Db Monitor with no special results. I see the statements in the log, but no special reason for it to hang
LOG
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot3-2011-01-18 07:00:45.5162=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SELECT t2.ID, t2.WORKFLOW_ID, t2.TASK_ID, t2.TYPE AS "TYPE", t2.PROPRITY, t2.RESP_BU_ID, t2.CREATE_DATETIME, t2.CLOSED_DATETIME, t2.MESSAGE, t2.MODIFIED_DATETIME, t2.DESCRIPTION, t2.PARENT_WORKITEM_ID, t2.GROUP_IDEN, t2.ORIGINAL_TYPE
FROM PUMA_WORKFLOW_INSTANCE t1, PUMA_WORKITEM t2
WHERE (t1.PRODUCT_ID = :p0) AND (t1.STATEFUL_OBJECT_ID IS NULL) AND (t1.ID = t2.WORKFLOW_ID) AND (NOT (t2.ID IS NULL)) AND (t2.CLOSED_DATETIME IS NULL) - Extra info:
2011-01-18 19:04:24,855 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SELECT t2.ID, t2.WORKFLOW_ID, t2.TASK_ID, t2.TYPE AS "TYPE", t2.PROPRITY, t2.RESP_BU_ID, t2.CREATE_DATETIME, t2.CLOSED_DATETIME, t2.MESSAGE, t2.MODIFIED_DATETIME, t2.DESCRIPTION, t2.PARENT_WORKITEM_ID, t2.GROUP_IDEN, t2.ORIGINAL_TYPE
FROM PUMA_WORKFLOW_INSTANCE t1, PUMA_WORKITEM t2
WHERE (t1.PRODUCT_ID = :p0) AND (t1.STATEFUL_OBJECT_ID IS NULL) AND (t1.ID = t2.WORKFLOW_ID) AND (NOT (t2.ID IS NULL)) AND (t2.CLOSED_DATETIME IS NULL) - Extra info: -1
2011-01-18 19:04:24,871 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Disconnect: Description: Close connection - Extra info:
2011-01-18 19:04:24,871 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Sotas.ProductSession Found 1 workitems to update for productId=1479917
2011-01-18 19:04:24,871 DEBUG [p526918=>GetWorkItems(WorkItemFilter[MyLineWorkItems, TasksOpenAndInProgress],0)] Puma.Util.DurationCounter GetWorkItems took 46.8753 msecs
2011-01-18 19:04:24,886 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SELECT t1.ID, t1.DEFINITION_ID, t1.TASK_STATUS, t1.RESPONSIBLE_BU_MEMBER_ID, t1.LOCKED_DATE_TIME, t1.END_DATE_TIME, t1.STATE_ID, t1.DUE_DATE, t1.ESCALATION_DATE
FROM PUMA_TASK_INSTANCE t1
WHERE :np0 = t1.ID - Extra info:
2011-01-18 19:04:24,886 INFO [PumaRobot2-2011-01-18 07:00:25.6579=>()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SELECT t1.ID, t1.DEFINITION_ID, t1.TASK_STATUS, t1.RESPONSIBLE_BU_MEMBER_ID, t1.LOCKED_DATE_TIME, t1.END_DATE_TIME, t1.STATE_ID, t1.DUE_DATE, t1.ESCALATION_DATE
FROM PUMA_TASK_INSTANCE t1
WHERE :np0 = t1.ID - Extra info: -1
Callstack where it hangs
at OciDynamicType.nativeOCIStmtExecute(HandleRef , HandleRef , HandleRef , Int32 , Int32 , Int32 , Int32 , Int32 )
at OciDynamicType.OCIStmtExecute(HandleRef , HandleRef , HandleRef , Int32 , Int32 , Int32 , Int32 , Int32 )
at Devart.Data.Oracle.ao.a(Int32 A_0, a4 A_1)
at Devart.Data.Oracle.OracleCommand.InternalExecute(CommandBehavior behavior, IDisposable disposable, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1, Object[] A_2, Object A_3)
at Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1)
at Devart.Data.Linq.Provider.DataProvider.b.a(b A_0, Object[] A_1)
at Devart.Data.Linq.Provider.DeferredQuery`3.a(TKeyQuery A_0)
at Devart.Data.Linq.Provider.DefferedEntity`4.a(TKeyQuery A_0)
at Devart.Data.Linq.Provider.DeferredSource`2.b()
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
at System.Data.Linq.EntityRef`1.get_Entity()
at IssuanceEngine.Data.WorkItem.get_Task() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Data.Oracle\IssuanceEngineDbContext.WorkItem.cs:line 504
at IssuanceEngine.Sotas.ProductSession.UpdateOpenWorkItems(PumaDataContext context, Product product) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ProductSession.cs:line 159
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.c__DisplayClassed.b__ec() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2915
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.ExecuteWorkflowStep(PumaDataContext context, String name, Func`1 func) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2941
at IssuanceEngine.Web.WorkflowExecution.ExecutionSession.UpdateOpenWorkitems(PumaDataContext context, Int32 productId) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.Web\ExecutionSession.cs:line 2911
at IssuanceEngine.BusinessObjects.Workflow.WorkflowObjectProcessThread.ProcessNextItem(IWorkflowExecutionStep next) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\Workflow\WorkflowObjectProcessThread.cs:line 99
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.c__DisplayClass6.b__3() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 254
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.CallProtected(Action method) in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 350
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.ProcessQueue() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 257
at IssuanceEngine.BusinessObjects.BaseProcessThread`1.MainLoop() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\IssuanceEngine.BusinessObjects\Implementation\BaseProcessThread.cs:line 205
at Puma.Utilities.Threads.ThreadManager.c__DisplayClasse.b__d() in d:\buildbot\slave\release-PuMa-a\build\PumaEngine\Puma.Utilities\Threads\ThreadManager.cs:line 335
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Any guesses? Or should we just abandon Devart and try a different implementation?
- Tue 18 Jan 2011 17:08
- Forum: dotConnect for Oracle
- Topic: Transaction does not match the DataContext.Connection
- Replies: 3
- Views: 2161
Transaction does not match the DataContext.Connection
It is not the first time I have this error but this time I managed to reproduce it with DbMonitor on.
My application is multithreaded. For some of my contexts I open a connection that is committed on the end. The pattern is always:
Sometimes I get the error "Transaction does not match the DataContext.Connection." I could not reproduce the error on my development machine. Only on the server were the application runs under the IIS.
Here follows some lines of the log where the words TRANSACTION or COMMIT appear. The [] is the name of the threads. Please let me know if you want the full logs sent to you.
In the first example, only one thread was starting a transaction. On the second example, two threads at the same time were opening and committing a transaction
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:41,084 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:42,599 ERROR [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
2011-01-18 17:33:42,599 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Rollback: Description: Rollback - Extra info:
2011-01-18 17:37:43,847 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
pum2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,123 ERROR [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
My application is multithreaded. For some of my contexts I open a connection that is committed on the end. The pattern is always:
Code: Select all
context.Connection.Open();
context.Transaction = Connection.BeginTransaction();
try
{
// do something
context.SubmitChanges();
// do another thing
context.SubmitChanges();
context.Transaction.Commit();
}
catch
{
context.Transaction.Rollback();
}
Here follows some lines of the log where the words TRANSACTION or COMMIT appear. The [] is the name of the threads. Please let me know if you want the full logs sent to you.
In the first example, only one thread was starting a transaction. On the second example, two threads at the same time were opening and committing a transaction
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:41,005 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:41,084 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:33:42,318 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:33:42,599 ERROR [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
2011-01-18 17:33:42,599 INFO [p526918=>CreateProduct(Puma.Transfer.CreateChangeProduct.ProductCreationInitialData)] IssuanceEngine.Data.PumaDataContext Rollback: Description: Rollback - Extra info:
2011-01-18 17:37:43,847 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:37:43,863 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
pum2011-01-18 17:38:23,060 INFO [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Prepare: Description: Prepare: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info:
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Execute: Description: Execute: SET TRANSACTION ISOLATION LEVEL READ COMMITTED - Extra info: -1
2011-01-18 17:38:23,107 INFO [p526918=>ProcessTaskChanged()] IssuanceEngine.Data.PumaDataContext Commit: Description: Commit - Extra info:
2011-01-18 17:38:23,123 ERROR [p526918=>AcceptTaskAndSetStatus(5026900,202005)] IssuanceEngine.Data.PumaDataContext Fail to get the DataContext error:Transaction does not match the DataContext.Connection.
- Fri 07 Jan 2011 13:26
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
Hi Stanislav,
although the timeout would workaround the problem, it will not solve it.
As stated before, this problem only happens under heavy usage. As there are other connections problem (like the "Handle is not initialized" exception) which was also "workarounded" by you, my guess is that there must be some run condition in the connections opening and closing that is leaving these calls in an unknown state.
Do you think this is a possible cause? That Devart is closing the connection while the result of an OCI call is still being treated by the OCI dll?
Is there anyway we can monitor the opening and closing of Oracle connections done by Devart or trace all the Oci calls?
Best regards,
although the timeout would workaround the problem, it will not solve it.
As stated before, this problem only happens under heavy usage. As there are other connections problem (like the "Handle is not initialized" exception) which was also "workarounded" by you, my guess is that there must be some run condition in the connections opening and closing that is leaving these calls in an unknown state.
Do you think this is a possible cause? That Devart is closing the connection while the result of an OCI call is still being treated by the OCI dll?
Is there anyway we can monitor the opening and closing of Oracle connections done by Devart or trace all the Oci calls?
Best regards,
- Fri 26 Nov 2010 11:28
- Forum: dotConnect for Oracle
- Topic: InvalidCastException in latest Beta version
- Replies: 12
- Views: 2689
- Fri 26 Nov 2010 11:24
- Forum: LinqConnect (LINQ to SQL support)
- Topic: Exception: An item with the same key has already been added
- Replies: 7
- Views: 3160
- Wed 03 Nov 2010 14:48
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
Hi Stanislav,
for the Direct mode, I think we have to evaluate it. But it won't be surely done from day to night.
Currently we have the following Oracle versions:
Oracle Server: 10.2.0.4.0 - 64bi
Website Server:
oracle 9 full client Version 9.2.0.1.0
oracle 10 instant client installed. Version 10.2.0.1 (oci.dll)
What is the link between the versions in developer machines and production servers? Is there anything compiled in the code that is linked with the Oracle client version on the compiling machine?
for the Direct mode, I think we have to evaluate it. But it won't be surely done from day to night.
Currently we have the following Oracle versions:
Oracle Server: 10.2.0.4.0 - 64bi
Website Server:
oracle 9 full client Version 9.2.0.1.0
oracle 10 instant client installed. Version 10.2.0.1 (oci.dll)
What is the link between the versions in developer machines and production servers? Is there anything compiled in the code that is linked with the Oracle client version on the compiling machine?
- Wed 27 Oct 2010 09:03
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
It happens randomly in ANY part of the code under heavy load. By ANY, I mean that any database call can hang. By hang, I mean it stays infinitely there.
It happens mostly on our PROD and PRE-PROD servers which are 8-core machines. On the developer machines (2-core) and other servers (2-core) it is very hard to reproduce.
If you want I can send you an application dump (which is usually a huge file) so that you can analyze it.
I know that the current version we are using does not implement the CommandTimeout correctly. My question is if I will get the CommandTimeout during the fetch also.
It happens mostly on our PROD and PRE-PROD servers which are 8-core machines. On the developer machines (2-core) and other servers (2-core) it is very hard to reproduce.
If you want I can send you an application dump (which is usually a huge file) so that you can analyze it.
I know that the current version we are using does not implement the CommandTimeout correctly. My question is if I will get the CommandTimeout during the fetch also.
- Tue 26 Oct 2010 10:28
- Forum: dotConnect for Oracle
- Topic: Memory Error with latest version
- Replies: 15
- Views: 2971
I have this error also from time to time on our IIS server on version 5.60.124. This occurs in some background thread and completely crashes the server with no error message.
It looks like dotConnect for Oracle does not work quite well on heavy multithread load.
As you cannot reproduce it, why don't you just catch this error and handle it. Output something and on some log file and don't crash the application.
It looks like dotConnect for Oracle does not work quite well on heavy multithread load.
As you cannot reproduce it, why don't you just catch this error and handle it. Output something and on some log file and don't crash the application.
- Fri 22 Oct 2010 08:42
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
Hi Stanislaw,
our connection string looks like this:
User Id=xxx;Server=xxx;Persist Security Info=False;Unicode=True
So I guess we are using OCI mode. Is that right?
Do you think we can also solve the problem that it always hangs on the below calls by configuring something on the OCI:
All of the above calls may randomly hang (by hang I mean they do really never return) and this is really what is killing our application today
Regards,
our connection string looks like this:
User Id=xxx;Server=xxx;Persist Security Info=False;Unicode=True
So I guess we are using OCI mode. Is that right?
Do you think we can also solve the problem that it always hangs on the below calls by configuring something on the OCI:
Code: Select all
OciDynamicType.nativeOCIStmtFetch(HandleRef , HandleRef , Int32 , UInt16 , UInt32 )
OciDynamicType.nativeOCIStmtExecute(HandleRef , HandleRef , HandleRef , Int32 , Int32 , Int32 , Int32 , Int32 )
OciDynamicType.nativeOCILobGetLength(HandleRef , HandleRef , IntPtr , Int32& )
OciDynamicType.nativeOCITransCommit(HandleRef , HandleRef , UInt32 )
All of the above calls may randomly hang (by hang I mean they do really never return) and this is really what is killing our application today
Regards,
- Thu 21 Oct 2010 13:02
- Forum: dotConnect for Oracle
- Topic: EntityRef new behaviour or Regression?
- Replies: 6
- Views: 1430
Hi Stanislaw,
I tried to send you an e-mail, but your mailbox is full. We managed to reproduce the error using your sample. Here is how to do it:
Here is how to reproduce the issue with LoadWith() on the example from Devart:
1) In the Load1()
change:
With:
2) In the Main()
remove or comment :
Please let me know if you manage to reproduce it (or when your mailbox is back again)
Best regards,
I tried to send you an e-mail, but your mailbox is full. We managed to reproduce the error using your sample. Here is how to do it:
Here is how to reproduce the issue with LoadWith() on the example from Devart:
1) In the Load1()
change:
Code: Select all
dc.Emps.LoadWith(e => e.Dept);
Console.WriteLine("First context: related Dept is {0} null", dc.Emps.FirstOrDefault().Dept == null ? "" : "not");
Code: Select all
Console.WriteLine("First context: related Dept is {0} null", dc.Emps.LoadWith(e => e.Dept).FirstOrDefault().Dept == null ? "" : "not");
//call of the 2nd thread here!
Thread th2 = new Thread(Load2);
th2.Start();
2) In the Main()
remove or comment :
Code: Select all
// Thread th2 = new Thread(Load2);
// th2.Start();
Best regards,
- Wed 20 Oct 2010 07:19
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
- Fri 01 Oct 2010 18:01
- Forum: LinqConnect (LINQ to SQL support)
- Topic: SubmitChanges() call does not return
- Replies: 28
- Views: 10355
Hi Stanislav,
thanks for the tips. I've already tried the connection timeout and it does not work. At least I never got one and I still have the random hangings on my server.
I tried turning off the pooling but, for my surprise, when doing so, the connection gets randomly closed by the context!!!
If I do:
I get an error on the Commit: Connection must be opened.
If I check the context.Connection.State, it is closed. I am pretty sure this is a bug. At least on the 5.60.124 version.
Any other ideas?!
thanks for the tips. I've already tried the connection timeout and it does not work. At least I never got one and I still have the random hangings on my server.
I tried turning off the pooling but, for my surprise, when doing so, the connection gets randomly closed by the context!!!
If I do:
Code: Select all
context.connection.Open()
context.Transaction = Connection.BeginTransaction();
context.SubmitChanges();
... Do my stuff here. So other queries, I don't no
context.Transaction.Commit();
If I check the context.Connection.State, it is closed. I am pretty sure this is a bug. At least on the 5.60.124 version.
Any other ideas?!
- Fri 01 Oct 2010 17:58
- Forum: dotConnect for Oracle
- Topic: EntityRef new behaviour or Regression?
- Replies: 6
- Views: 1430
Hi Stanislav,
it is hard to send a small example, because our project is huge.
What I can tell is that previously the workitem.Task was not null even without the LoadWith. If you say this is suppose to be like this than it is a new feature, meaning that we will have to go throughout our whole code and add LoadWith for all entities that previously were loaded on demand.
What I can tell you also is that in many parts of the code, we have a similar relationship, and the entity is not set to null. It is only set to null if, somewhere in the code you do a LoadWith and than in another part of the code, with a completely different context, you don't do it.
it is hard to send a small example, because our project is huge.
What I can tell is that previously the workitem.Task was not null even without the LoadWith. If you say this is suppose to be like this than it is a new feature, meaning that we will have to go throughout our whole code and add LoadWith for all entities that previously were loaded on demand.
What I can tell you also is that in many parts of the code, we have a similar relationship, and the entity is not set to null. It is only set to null if, somewhere in the code you do a LoadWith and than in another part of the code, with a completely different context, you don't do it.