Watch, Follow, &
Connect with Us

Please visit our new home
community.embarcadero.com.


Welcome, Guest
Guest Settings
Help

Thread: Problem getting lots of error messages in tSQLmonitor


This question is answered. Helpful answers available: 2. Correct answers available: 1.


Permlink Replies: 2 - Last Post: Sep 27, 2014 1:16 AM Last Post By: Alf Christopher... Threads: [ Previous | Next ]
Alf Christopher...

Posts: 25
Registered: 10/10/98
Problem getting lots of error messages in tSQLmonitor  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Sep 25, 2014 12:40 AM
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 - OCIAttrGet'
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)

Alf Christopher...

Posts: 25
Registered: 10/10/98
Re: Problem getting lots of error messages in tSQLmonitor  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Sep 25, 2014 2:38 AM   in response to: Alf Christopher... in response to: Alf Christopher...
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
Alf Christopher...

Posts: 25
Registered: 10/10/98
Re: Problem getting lots of error messages in tSQLmonitor  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Sep 27, 2014 1:16 AM   in response to: Alf Christopher... in response to: Alf Christopher...
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 :-)
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02