2012-02-11 4 views
1

Проблемы: ниже проблема возникает в двух случаях ..Flex RemoteObject нескольких записей в базе данных тех же информация

case1: Когда клиент делает запрос RemoteObject то есть, чтобы сохранить некоторую информацию ... на вызове сделанный в Java SAVE_INFO. Если запрос был неудачным, то вернулся к FaultHandler (мы сохраняем информацию в arrayCollection). Позже мы снова вызываем SAVE_INFO для каждого элемента в arrayCollection, т. Е. (Если arrayCollection имеет 10 элементов. Мы вызываем 10 раз по тому же методу. Я знаю, что это глупо, но мы не можем управлять java, чтобы написать метод перегрузки). Иногда мы видим, что в базе данных имеется несколько записей одной и той же информации. Я не уверен, что это происходит при переходе через arraycollection и вызове или в обычном однократном вызове. Мы не смогли найти образец для воспроизведения. Уровень Java LOG находится на уровне ошибки в производстве. не может установить INFO в производство для контроля всех вызовов. Мы не знаем, была ли эта многократная сохраненная запись, одна в arrayCollection или обычная.

Flex3 RemoteObject -> 6,1, 3,0 LCDS, Java1.5 -> Вебсервис -> Java (спящий режим) -> Oracle 10g

Случай 2: Когда приложение остается открытым, и пользователь покидает на день и отправляет информацию на следующее утро, мы видим дубликаты записей в БД этой информации. (без массива. Простой прямой вызов)

Flex3 RemoteObject -> OC4J Blazeds Java1.5 (JDBC) -> Oracle 10g.

Недавно один из наших тестовых примеров 2-го приложения тестировщиков нашел этот шаблон, и я начинаю думать, что может быть и в случае с 1 также .. пользователи могут уезжать на обед/перерыв и повторно возвращать arrayCollection после возвращения. Во время обеда java, возможно, убил сеансы для клиента и после повторной отправки 10 в то же время. Java, возможно, создала 10 сеансов дубликатов ... Опять то, что я предполагаю, может быть совершенно неверным.

Я не знаю, вызывает ли гибкие удаленные вызовы remoteObject amf ошибки или дубликаты сеанса Java, вызывая ошибку или оракул делает это. Я не имею ни малейшего понятия или идеи, где проблема может быть.

Помогите пожалуйста ???

ответ

0

Я думаю, вы считаете правильным, что соединение мертво, но может быть или не быть из-за того, что ваша коллекция имеет дубликаты. Быстрый тест состоит в том, чтобы перезаписать код arrayCollection, чтобы не допускать дубликатов и посмотреть, исправляет ли он это.

Как ни странно, это может быть проблемой при нескольких сеансах от одного и того же клиента, где в службу выполняется несколько подключений. Обычно это связано с отключением сеансовых файлов сеансов удаленных хостов. В Blaze должны быть включены файлы cookie сеанса для правильного управления клиентом.

Если это так, вам нужно будет написать код, чтобы ограничить количество одновременных подключений, созданных клиентом. Это можно сделать, например, на странице JSP. Чтобы проверить это, вы можете написать код для хранения дополнительного поля в таблице с подсчетом соединения. Таким образом, вы можете увидеть, происходит ли дублирование данных с одного сеанса.

Надеюсь, это поможет.

Смежные вопросы