为 J2C Java Bean 定义 Java 方法时,必须为用来描述将由该 Java 方法执行的与 IMS™ 的交互的属性提供值。这些值是 IMSInteractionSpec 的输入属性的值。以下列表描述了 IMSInteractionSpec 的所有输出属性和输入属性,包括并不是由应用程序组件设置的那些属性:
值 | IMSInteractionSpecProperties 中的命名常量 | 描述 |
---|---|---|
1 | IMS_REQUEST_TYPE_IMS_TRANSACTION | 请求是一个 IMS 事务。IMS 返回的正常事务输出将用来填充应用程序的输出消息。如果 IMS 返回“DFS”消息,则 IMS 资源适配器将抛出 IMSDFSMessageException。 imsRequestType 的此值适用于不是使用 WebSphere® Studio MFS 支持生成的应用程序。 |
2 | IMS_REQUEST_TYPE_IMS_COMMAND | 请求是一个 IMS 命令。IMS 返回的命令输出(包括“DFS”消息)用来填充应用程序的输出消息。未抛出 IMSDFSMessageException。 imsRequestType 的此值适用于提交 IMS 命令的应用程序。 |
3 | IMS_REQUEST_TYPE_MFS_TRANSACTION | imsRequestType 的此值适用于使用 WebSphere Studio MFS 支持生成的应用程序。 IMS 返回的正常事务输出以及“DFS”消息用来填充应用程序的输出消息。未抛出 IMSDFSMessageException。 |
值 | IMSInteractionSpecProperties 中的命名常量 | 描述 |
---|---|---|
0 | SYNC_SEND | IMS 资源适配器通过 IMS Connect 将客户机请求发送至 IMS,但是不会期望来自 IMS 的响应。对于 SYNC_SEND 交互,客户机不需要同步接收来自 IMS 的响应。SYNC_SEND 在可共享和专用持久套接字连接上都受支持,但是,只允许将它用于 commitMode 0 交互。如果 interactionVerb 设置为 SYNC_SEND,则会忽略执行超时值和套接字超时值。注意:imsRequest 类型 2 不允许 SYNC_SEND,并且将产生异常。 |
1 | SYNC_SEND_RECEIVE | 执行 IMS 交互时将请求发送至 IMS 并同步接收响应。典型的 SYNC_SEND_RECEIVE 交互是运行非对话式 IMS 事务,在这种事务中,将把输入记录(IMS 事务输入消息)发送至 IMS,并由 IMS 返回输出记录(IMS 事务输出消息)。SYNC_SEND_RECEIVE 交互还用于对话式 IMS 事务的迭代。对话式事务要求 commitMode 1。可以使用 commitMode 1 或 commitMode 0 来运行非对话式事务。如果在专用持久套接字上使用了 commitMode 0,则必须为 IMSConnectionSpec 的 clientID 属性提供值。如果在可共享持久套接字上使用了 commitMode 0,则一定不能为 IMSConnectionSpec 的 clientID 属性提供值。 |
3 | SYNC_END_CONVERSATION | 如果应用程序在 interactionVerb 设置为 SYNC_END_CONVERSATION 的情况下执行交互,则 IMS 资源适配器将发送一条消息来强制结束 IMS 对话式事务。 对于 SYNC_END_CONVERSATION,必须采用 commitMode 1。不允许提供 clientID。 |
4 | SYNC_RECEIVE_ASYNCOUTPUT | interactionVerb SYNC_RECEIVE_ASYNCOUTPUT 在可共享持久套接字连接和专用持久套接字连接上都有效。SYNC_RECEIVE_ASYNCOUTPUT 用来检索未传递的异步输出。当在专用持久套接字上使用
SYNC_RECEIVE_ASYNCOUTPUT 时,必须为 IMSConnectionSpec 的 clientID 属性提供值。 对于这种类型的交互,Java 客户机只能接收单条消息。如果发出请求时 clientID 的“IMS OTMA 异步队列”中没有任何消息,就不需要进一步尝试检索消息了。在经过在 SYNC_RECEIVE_ASYNCOUTPUT 交互的 executionTimeout 属性中指定的时间长度之后,将不会返回任何消息并且将发生超时。 |
5 | SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT | interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 在可共享和专用持久套接字连接上都有效。它用来检索异步输出。 对于这种类型的交互,Java 客户机只能接收单条消息。如果发出请求时 clientID 的“IMS OTMA 异步队列”中没有任何消息,就不会进一步尝试检索消息。在经过在 SYNC_RECEIVE_ASYNCOUTPUT_SINLE_NOWAIT 交互的 executionTimeout 属性中指定的时间长度之后,将不会返回任何消息并且将发生超时。 注意:interactionVerb SYNC_RECEIVE_ASYNCOUTPUT 和 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 执行相同的功能。但是,建议将 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 用于 Rational Application Developer 6.0.0.2 和 IMS 资源适配器 9.1.0.1.1 或 9.1.0.2。 |
6 | SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT | interactionVerb SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 用来检索异步输出。它在可共享持久套接字连接和专用持久套接字连接上都有效。 对于这种类型的交互,Java 客户机只能接收单条消息。如果发出请求时 clientID 的“IMS OTMA 异步队列”中没有任何消息,则 IMS Connect 将等待 OTMA 返回消息。IMS Connect 将等待在 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 交互的 executionTimeout 属性中指定的时间长度,如果经过这段时间之后还没有返回消息,则会产生异常。 |
J2EE 连接体系结构(JCA)值 SYNC_RECEIVE(2)目前是不受支持的。
如果客户机应用程序想提供 LTERM 覆盖名称,则可以设置此属性的值。此名称将位于 IMS 应用程序的 I/O PCB 中,以便于 IMS 应用程序根据此覆盖值来进行逻辑判断。
在输入中,mapName 属性的值通常就是“MFS 消息输出描述符”的名称或者是“MOD”。将在 I/O PCB 中将 MOD 名称提供给 IMS 应用程序。
在输出中,mapName 属性的值就是“MFS 消息输出描述符”的名称或者是“MOD”。这是在将事务输出消息插入到 I/O PCB 中时由 IMS 应用程序指定的 MOD 名称。
注意:如果企业服务的输入消息和输出消息是由 WebSphere Studio MFS 支持生成的,则使用该企业服务的 Java 应用程序就不应使用 mapName 字段。
此属性仅对于可共享持久套接字连接上的使用 IMS interactionVerb SYNC_SEND_RECEIVE 的交互有效。该属性对于专用持久套接字连接上的任何交互都无效。它适用于落实方式 0 交互。它不适用于落实方式 1 交互。但是,如果落实方式 1 交互执行程序间交换,则衍生的程序将运行落实方式 0,因此该属性也将适用。
此属性仅在具有落实方式 0 或落实方式 1 交互(这些交互又引起程序间切换,该切换调用另一个落实方式 0 交互,并导致不可传递的辅助输出)的可共享持久套接字连接上的 SYNC_SEND_RECEIVE 交互有效。此属性确定是否会将未传递的输出重新路由至在 reRouteName 字段中指定的指定目标。如果 reRoute 为 TRUE,则不会将异步输出排队至所生成的 clientID 的 TPIPE。而是会将异步输出排队至在 reRouteName 字段中指定的目标。reRoute 的缺省值为 FALSE。
如果将 reRoute 和 purgeAsyncOutput 都设置为 TRUE,则会抛出异常。