我遇到了Data Queue对象的问题。我正在通过Java中的Data Queue对象向iSeries程序(也称为AS400)发送消息。我可以写入iSeries并读取响应,但问题是数据队列的大小是由我之前发送的消息的大小定义的,因此,当我收到答案时,这已被截断为大小请求消息和我松散的信息。我该如何解决这个问题?谁能帮我?我正在使用JTOpen库。
谢谢
答案 0 :(得分:3)
无论如何创建,数据队列都具有“最大入口长度”。如果使用JTOpen设置DataQueue对象,则在CL的CRTDTAQ
命令或create
方法调用中指定。
如果您计划通过数据队列发送不同长度的消息,则需要创建“最大条目长度”大于或等于实际最大条目长度的数据队列。否则,你冒险将一些东西放在一端,并在它从另一端出来时被截断。
Here's the Javadoc显示了如何从{JTOpen create
数据队列。
答案 1 :(得分:1)
您是否愿意考虑替代解决方案?我们在类似情况下使用的方法是通过没有大小限制的用户空间(AS / 400上的对象类型USRSPC)传递请求/响应消息的内容。好吧,如果我没记错的话,它的大小为16GB ......用户空间的固定大小名称又通过AS / 400服务器和Java客户端之间的数据队列(DTAQ)传递。