oracle aq hang,Delphi ODAC:从Oracle AQ中删除JMS消息

请求队列包含这样的JMS对象(但没有换行符和其他空格):

SYS.AQ$_JMS_BYTES_MESSAGE(

SYS.AQ$_JMS_HEADER(

'null','null','null','null','null','null',

SYS.AQ$_JMS_USERPROPARRAY(

SYS.AQ$_JMS_USERPROPERTY('Key1',100,'Value1','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key2',100,'Value2','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key3',100,'Value3','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key4',100,'Value4','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key5',100,'Value5','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key6',100,'Value6','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key7',100,'Value7','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key8',100,'Value8','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key9',100,'Value9','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key10',100,'Value10.0','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key11',100,'Value11','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key12',100,'Value12','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key13',100,'Value13','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key14',100,'Value14','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key15',100,'Value15','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key16',100,'Value16','null',27),

SYS.AQ$_JMS_USERPROPERTY('Key17',100,'Value17','null',27)

)

),

4168,'null','oracle.sql.BLOB@959acc'

)

我可以接收底层对象(字符串有效负载返回为空字符串,但TOraObject有效负载包含数据)。

我正在尝试取消对TOraObject负载的检查,并正在寻找一个表,该表将数据类型值转换为正确的AttrXxxx[Name]属性调用。

OraType.AttributeCount:4

OraType.Name:"SYS"."AQ$_JMS_BYTES_MESSAGE"

OraType.DataType:15

Attribute[0].Name:HEADER

Attribute[0].DataType:15

OraType.AttributeCount:7

OraType.Name:"SYS"."AQ$_JMS_HEADER"

OraType.DataType:15

Attribute[0].Name:REPLYTO

Attribute[0].DataType:15

OraType.AttributeCount:3

OraType.Name:"SYS"."AQ$_AGENT"

OraType.DataType:15

Attribute[0].Name:NAME

Attribute[0].DataType:1

Attribute[1].Name:ADDRESS

Attribute[1].DataType:1

Attribute[2].Name:PROTOCOL

Attribute[2].DataType:5

Attribute[1].Name:TYPE

Attribute[1].DataType:1

Attribute[2].Name:USERID

Attribute[2].DataType:1

Attribute[3].Name:APPID

Attribute[3].DataType:1

Attribute[4].Name:GROUPID

Attribute[4].DataType:1

Attribute[5].Name:GROUPSEQ

Attribute[5].DataType:5

Attribute[6].Name:PROPERTIES

Attribute[6].DataType:17

OraType.AttributeCount:1

OraType.Name:"SYS"."AQ$_JMS_USERPROPARRAY"

OraType.DataType:17

Attribute[0].Name:ELEMENT

Attribute[0].DataType:15

OraType.AttributeCount:5

OraType.Name:"SYS"."AQ$_JMS_USERPROPERTY"

OraType.DataType:15

Attribute[0].Name:NAME

Attribute[0].DataType:1

Attribute[1].Name:TYPE

Attribute[1].DataType:5

Attribute[2].Name:STR_VALUE

Attribute[2].DataType:1

Attribute[3].Name:NUM_VALUE

Attribute[3].DataType:5

Attribute[4].Name:JAVA_TYPE

Attribute[4].DataType:5

Attribute[1].Name:BYTES_LEN

Attribute[1].DataType:5

Attribute[2].Name:BYTES_RAW

Attribute[2].DataType:1

Attribute[3].Name:BYTES_LOB

Attribute[3].DataType:102

case DataType of

102:

LOB := ObjectPayLoad.AttrAsLob[Name];

15:

AttributeOraObject := ObjectPayLoad.AttrAsObject[Name];

17:

AttributeOraArray := ObjectPayLoad.AttrAsArray[Name];

else

begin

PayLoadAttributeAsString := ObjectPayLoad. AttrAsString[Name];

Logger.Log(' "%s"', [PayLoadAttributeAsString]);

end;

end;

欢迎提供更完整的列表:-)

在这之后,我需要研究另一种方法:生成包含JMS内容的右toraoobject。

这方面的建议也很受欢迎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值