I am getting AVs in this code:
It happens only with 10g and if ASender is a "numeric" value, I mean, made up only by digits (0-9). It looks that Oracle 10g sends an error message to say it's not a valid name (9i doesn't), but then DOA crashes with an AV.
Code:
procedure TdmIkonSystem.Enqueue(const AMessage:
string; AProcessID, AProjectID: Int64; const
ASender: string; APriority: Integer);
begin
{$IFDEF RAW_PAYLOAD}
Enqueuer.RawPayload := AMessage;
{$ELSE}
with Enqueuer.Payload do
begin
SetAttr('PROCESS_ID', AProcessID);
SetAttr('PROJECT_ID', AProjectID);
SetAttr('ENGINE_MESSAGE', AMessage);
end;
{$ENDIF}
Enqueuer.MessageProperties.Priority :=
APriority;
Enqueuer.MessageProperties.SenderId.Name :=
ASender;
Enqueuer.Enqueue;
end;