Oraclesession.pooling=psMTS,it is not normal for COM+ which is support transaction

jkp

Member
set Oraclesession.pooling=psMTS
COM+ under oracle service of MTS

1.client first call COM+(request transaction) ,that in com+ setcomplete is ok.it can commit data into oracle9i2 database;

2.client first call COM+(support transaction),then in com+ can't post to oracle9i2 database,and not error report.
 
I'm not sure I understand the question. Can you rephrase it?

------------------
Marco Kalter
Allround Automations
 
I have to component,one is first,the other is second.

first component have a oraclesession.oraclesession.pooling is set to psMTS.
first component inherite from TMtsDataModule and have a queryexecute method.
second component inheritd from TMtsAutoObject.

when first and second component tansaction is set to request transaction,queryexecute execute fine.
when first and second component transaction is set to support transaction,queryexecute mothod can't correctly run ,and no error occur.
 
If it doesn't run correctly, and does not generate an exception or error message, then what exactly goes wrong?

------------------
Marco Kalter
Allround Automations
 
sorry,my english is pool.

when component's transaction set to support tansaction,It can't put data into database,but no error ocurr. I think,I set incorrectly which parameter wrong.

Originally posted by mkalter:
If it doesn't run correctly, and does not generate an exception or error message, then what exactly goes wrong?

 
this is my component (poolQry.dfm)

object PoolerQry: TPoolerQry
OldCreateOrder = False
AutoComplete = False
OnActivate = MtsDataModuleActivate
OnDeactivate = MtsDataModuleDeactivate
Pooled = True
Left = 465
Top = 173
Height = 255
Width = 314
object DataSetProvider: TDataSetProvider
DataSet = OracleDataSet1
Options = [poAllowCommandText]
OnUpdateError = DataSetProviderBlobUpdateError
BeforeApplyUpdates = DataSetProviderBlobBeforeApplyUpdates
OnGetTableName = DataSetProviderGetTableName
Left = 128
Top = 144
end
object OracleSession: TOracleSession
LogonPassword = 'du'
LogonDatabase = 'DEVFBP'
ThreadSafe = True
Pooling = spMTS
SQLTrace = stFalse
BytesPerCharacter = bcAutoDetect
Left = 128
Top = 32
end
object OracleDataSet1: TOracleDataSet
Session = OracleSession
Left = 128
Top = 80
end
end
 
following is oracle monitor result:
--------------------------------------------
1.
OracleSession.pooling = spMTS
component's transaction set to support transaction

Session.LogOn as du@devfbp
Query.Execute(1 record processed) select to_char(userenv('SESSIONID')) from dual
Query.Execute(1 record processed) insert into banks values(11,'sss',10)
session.LogOff

result:can't put data into database,but no error occur;

--------------------------------------------------------------------------------
2.
OracleSession.pooling = spNone
component's transaction set to support transaction

Session.LogOn as du@devfbp
Query.Excute alter session set sql_trace = true
Query.Execute(1 record processed) select to_char(userenv('SESSIONID')) from dual
Query.Execute(1 record processed) insert into banks values(11,'sss',10)
session.LogOff

result:can put data into database,no error occur;
 
Can you add a Session.Commit after inserting the data? If no exception occurs, the data must be there.

------------------
Marco Kalter
Allround Automations
 
error:
Can't commit an MTS controlled transaction

Originally posted by mkalter:
Can you add a Session.Commit after inserting the data? If no exception occurs, the data must be there.

 
first:OracleSession.pooling=spMTS

when component's transaction set to "request a transaction" ,directly call it's procedure,last call setcomplete method,then it can put data into database;
where component'stransaction set to "support transaction",directly call its's procedure,last call setcomplete method can't put data into database(nothing happened),and no error occur.

second:OracleSession:=spnone(or spinternal)
when component's transaction set to "support transaction"( or "request a transaction" or "request new transaction"),directly call it's procedure ,it always cat put data into database,but not start mts's transaction.

Originally posted by mkalter:
Is your MTS transaction ever committed?

 
Back
Top