问题:以下问题发生在两种不同的情况下..
情况1:当客户端发出remoteObject 请求即保存一些信息时... 调用Java SAVE_INFO 方法。如果请求失败,即返回到 FaultHandler(我们将信息保存在 arrayCollection 中)。稍后我们为 arrayCollection 中的每个项目再次调用 SAVE_INFO 即(如果 arrayCollection 有 10 个项目..我们调用 10 次相同的方法..我知道这有点愚蠢,但我们无法控制 java 来编写重载方法)。有时我们会看到数据库中有多个相同信息的记录。我不确定在遍历 arraycollection 并拨打电话时或在正常的一次性通话期间是否会发生这种情况。我们找不到可以重现的模式。Java LOG 级别在生产中处于错误级别。无法在生产中设置为 INFO 来监控所有呼叫。我们不知道这个多次保存的记录是arrayCollection 中的记录还是普通记录。
Flex3 RemoteObject --> WAS 6.1 , LCDS 3.0, Java1.5 --> Webservice --> Java (hibernate) --> Oracle 10g
案例2:当应用程序保持打开状态并且用户离开当天并在第二天早上提交信息时,我们在数据库中看到该信息的重复记录。(这里没有arrayCollection。简单的直接调用)
Flex3 RemoteObject --> OC4J Blazeds Java1.5 (JDBC) --> Oracle 10g。
最近,我们的一个测试人员测试案例 2 应用程序发现了这种模式,我开始认为案例 1 也可能是这样。用户可能会离开去吃午饭/休息,回来后重新提交了 arrayCollection。在午餐期间,java 可能已经终止了客户端的会话,并且在同时重新提交 10 个之后.. java 可能已经创建了 10 个重复的会话......我再次假设可能是完全错误的。
我不知道 flex remoteObject amf 批处理调用是否导致错误或 Java 会话重复导致错误或 oracle 正在执行此操作。我不知道问题可能出在哪里。
请帮忙 ???