Mega Search
23.2 Million


Sign Up

Make a donation  
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.
Score: 0  # Vote:  0
Date Posted: 25-Sep-2014, at 12:40 AM EST
From: Alf Christophersen
 
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.
Score: 0  # Vote:  0
Date Posted: 27-Sep-2014, at 1:16 AM EST
From: Alf Christophersen
 
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.
Score: 0  # Vote:  0
Date Posted: 25-Sep-2014, at 2:38 AM EST
From: Alf Christophersen