Problem getting lots of error messages in tSQLmonitor
News Group: embarcadero.public.delphi.database.dbexpress
I have problems with the connection toward a local Oracle database getting lot of trace messages marked as Vendor and Fatal, most possibly from Oracle when opening a tSQLDataset on Datasnap server side.
The SQLDataset is as thiss:
object dsBIOSINFO: TSQLDataSet
SchemaName = 'ACHRISTO_ADM'
CommandText = 'BIOSINFO'
CommandType = ctTable
DbxCommandType = 'Dbx.Table'
MaxBlobSize = -1
Params = <>
SQLConnection = IMBcomputers
Left = 72
Top = 502
end
tDatasetProvider:
object dspBIOSINFO: TDataSetProvider
DataSet = dsBIOSINFO
Options = [poAllowCommandText, poUseQuoteChar]
UpdateMode = upWhereKeyOnly
Left = 203
Top = 511
end
The tSQLMonitor routine is:
procedure THostlogServerContainer1.SQLMonitor1Trace(Sender: TObject; TraceInfo: TDBXTraceInfo;
var LogTrace: Boolean);
var
traceflag, tracelevel: String;
begin
{$IFDEF formbased_server}
if TraceInfo.traceflag = TDBXTraceFlags.Error then
begin
LoggFeil('SQL feilet med melding: ' + TraceInfo.Message + ' Time: ' + DateTimeToStr(now));
end
else
begin
case TraceInfo.traceflag of
TDBXTraceFlags.None:
traceflag := 'None ';
TDBXTraceFlags.Prepare:
traceflag := 'Prepare ';
TDBXTraceFlags.Execute:
traceflag := 'Execute ';
TDBXTraceFlags.Error:
traceflag := 'Error ';
TDBXTraceFlags.Command:
traceflag := 'Command ';
TDBXTraceFlags.Connect:
traceflag := 'Connect ';
TDBXTraceFlags.Transact:
traceflag := 'Transact ';
TDBXTraceFlags.Blob:
traceflag := 'Blob ';
TDBXTraceFlags.Misc:
traceflag := 'Misc ';
TDBXTraceFlags.Vendor:
traceflag := 'Vendor ';
TDBXTraceFlags.Parameter:
traceflag := 'Parameter ';
TDBXTraceFlags.Reader:
traceflag := 'Reader ';
TDBXTraceFlags.DriverLoad:
traceflag := 'DriverLoad ';
TDBXTraceFlags.MetaData:
traceflag := 'MetaData ';
TDBXTraceFlags.Driver:
traceflag := 'Driver ';
TDBXTraceFlags.Custom:
traceflag := 'Custom ';
end;
case TraceInfo.tracelevel of
TDBXTraceLevels.None:
tracelevel := 'None ';
TDBXTraceLevels.Debug:
tracelevel := 'Debug ';
TDBXTraceLevels.Info:
tracelevel := 'Info ';
TDBXTraceLevels.Warn:
tracelevel := 'Warn ';
TDBXTraceLevels.Error:
tracelevel := 'Error ';
TDBXTraceLevels.Fatal:
tracelevel := 'Fatal ';
end;
LoggMonitorTrace('Time: ' + DateTimeToStr(now) + ' SQLMonitor1Trace: ' +traceflag + tracelevel +
' SQL server monitor message ''' + TraceInfo.Message + '''');
sleep(1);
end;
{$ENDIF}
end;
The routine writes on my log screen about 900 messages of type:
PREPARE called Time: 25.09.2014 09:17:45
tHostlogServerContainer1.AS_GetRecords Time: 25.09.2014 09:17:45 00:00:08.827
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIHandleAlloc'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIHandleAlloc'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message ' select * from "ACHRISTO_ADM"."BIOSINFO"'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIStmtPrepare'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAtt
rGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIBindByPos'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIStmtExecute'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIParamGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIParamGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIParamGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIParamGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'OCI 8 - OCIAttrGet'
And now and then messages like:
Time: 25.09.2014 09:17:45 SQLMonitor1Trace: Vendor Fatal SQL server monitor message 'SELECT NULL, I.TABLE_OWNER, I.TABLE_NAME, I.INDEX_NAME, C.CONSTRAINT_NAME, CASE WHEN C.CONSTRAINT_TYPE = 'P' THEN 1 ELSE 0 END, CASE WHEN I.UNIQUENESS = 'UNIQUE' THEN 1 ELSE 0 END, 1 FROM SYS.ALL_INDEXES I, SYS.ALL_CONSTRAINTS C WHERE I.TABLE_OWNER=C.OWNER(+) AND I.INDEX_NAME=C.INDEX_NAME(+) AND I.TABLE_NAME=C.TABLE_NAME(+) AND (1<2 OR (1=2)) AND (LOWER(I.TABLE_OWNER) = LOWER(:1) OR (1=2)) AND (I.TABLE_NAME = :2
OR (1=2)) ORDER BY 2, 3, 4'
Result is that opening datasets and performing other sql quieries and calling and performing call on built in procedures take seconds (almost no difference in time expended if I drop the disolay of lines since the lines are dumped from a stringlist by a timer with a critical section each time ressource is dumped and emptied.
On the client that opens the dataset, this is declared:
object cdsBIOSINFO: TClientDataSet
Aggregates = <>
Params = <>
ProviderName = 'dspBIOSINFO'
RemoteServer = DSProviderConnection1
Left = 59
Top = 912
end
object dsBIOSINFO: TDataSource
DataSet = cdsBIOSINFO
Left = 185
Top = 912
end
Are there some obvious errors in setup here?
Or is this a Oracle setup error in some way,
(I have ensured that path to instant client is registered before path to server)
Vote for best question.
10 Excellent
9 Great
8 Good
7 Nice
6 OK
5 Normal
4 Not So Good
3 Bad
2 Horrible
1 Incredibly Horrible
Score: 0
# Vote: 0
Re: Problem getting lots of error messages in tSQLmonitor
News Group: embarcadero.public.delphi.database.dbexpress
Problem solved.
In another method I managed to activate partially the monitor which had flag autosave active. Ensuring it was disabled routine goes much faster :-)
Vote for best answer.
10 Excellent
9 Great
8 Good
7 Nice
6 OK
5 Normal
4 Not So Good
3 Bad
2 Horrible
1 Incredibly Horrible
Score: 0
# Vote: 0
Re: Problem getting lots of error messages in tSQLmonitor
News Group: embarcadero.public.delphi.database.dbexpress
Forgot to add the connection string:
CONNECT called
127.0.0.1 Time: 25.09.2014 09:17:28 00:06:04.395
PREPARE called Time: 25.09.2014 09:17:28
DSMetadata.GetDatabase Time: 25.09.2014 09:17:28 00:00:00.000
driverunit=Data.DBXOracle
driverpackageloader=TDBXDynalinkDriverLoader,DBXCommonDriver160.bpl
driverassemblyloader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=16.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
metadatapackageloader=TDBXOracleMetaDataCommandFactory,DbxOracleDriver160.bpl
metadataassemblyloader=Borland.Data.TDBXOracleMetaDataCommandFactory,Borland.Data.DbxOracleDriver,Version=16.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
getdriverfunc=getSQLDriverORACLE
libraryname=dbxora.dll
librarynameosx=libsqlora.dylib
vendorlib=oci.dll
vendorlibwin64=oci.dll
vendorlibosx=libociei.dylib
maxblobsize=-1
osauthentication=False
multipletransactions=False
trimchar=False
drivername=Oracle
database=localhost:1521 /XE
user_name=achristo_adm
password=my secret:-)
rowsetsize=20
blobsize=-1
localecode=0000
isolationlevel=ReadCommitted
os authentication=False
multiple transaction=False
trim char=False
decimal separator=.
enablebcd=False
integerprecision=10
Vote for best answer.
10 Excellent
9 Great
8 Good
7 Nice
6 OK
5 Normal
4 Not So Good
3 Bad
2 Horrible
1 Incredibly Horrible
Score: 0
# Vote: 0