Вложенная проблема Spring TxProxyTemplate - PullRequest
0 голосов
/ 13 марта 2012

У меня есть следующий конфиг.

<bean id="abcManager" parent="TxProxyTemplate">
    <property name="target">
        <bean class="com.x.y.AbcManagerImpl">
          <property name="abcDAO" ref="abcDAO"/>
          <property name="xyzManager" ref="xyzManager"/>
        </bean>
    </property>
</bean>

<bean id="xyzManager" parent="TxProxyTemplate">
    <property name="target">
        <bean class="com.x.y.XyzManagerImpl">
          <property name="abcDAO" ref="abcDAO"/>
          <property name="anotherManager" ref="anotherManager"/>
        </bean>
    </property>
</bean>

<bean id="anotherManager" parent="TxProxyTemplate">
    <property name="target">
      <bean class="com.x.y.AnotherManagerImpl">
        <property name="abcDAO" ref="abcDAO"/>
        <property name="oneMoreManager" ref="oneMoreManager"/>
      </bean>
    </property>
</bean>

В чем проблема со следующей конфигурацией?будет ли один и тот же DAO на разных уровнях вызывать проблемы параллелизма?

Мы обнаружили, что мы получаем много выпусков weblogic-соединений, когда у нас высокая нагрузка.

Как это связано с проблемой выпуска выпусков соединения?

Мы используем Hibernate для операций DAO.

Ответы [ 2 ]

1 голос
/ 19 марта 2012

Сначала проанализируйте журналы, чтобы увидеть, когда весна создает и закрывает транзакции. Для этого установите для регистратора для org.springframework.transaction значение DEBUG.

Далее, я думаю, вам нужно изучить аннотации @Transactional (которые, как я полагаю, вы используете для своих менеджеров (= службы?). Убедитесь, что распространение установлено правильно, поскольку это может быть связано с вашей проблемой (трудно сказать без видя код вашего менеджера, конечно).

0 голосов
/ 15 марта 2012

Чтобы ответить на ваш вопрос напрямую:

В чем проблема со следующей конфигурацией?будет ли иметь один и тот же DAO на разных уровнях причиной проблем с параллелизмом?

Ничего и нет.Я не вижу в этом ничего плохого.Не уверен, что вы имеете в виду под «тем же DAO» - у вас нет того же DAO.У вас тот же родитель, но 3 разных DAO.

Если вы спросите, почему weblogic закрывает ваши соединения с БД до завершения транзакции, мы не сможем ответить на это с помощью приведенной выше информации.

...