سؤال

أنا أستخدم Spring 3.0.3 و MyBatis 3.0.2 و MyBatis-Spring 1.0.0 على Apache Tomcat 6.0.29.

لقد استخدمت المعاملات التعريفية في الربيع لإدارة المعاملات. القضية هي أن المعاملات لا تعمل بالنسبة لي. المعاملة تعمل فقط مرة واحدة وبعد ذلك لا شيء.

لقد حاولت التحقق من كل تكويناتي ولكن لا أدنى فكرة. أي مؤشرات؟

تكويناتي تبدو هكذا -

    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>

    <aop:config>
        <aop:pointcut id="dtxops"
            expression="execution(* com.service.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="dtxops" />
    </aop:config>

تحرير بعد التعليق -------------

أبدأ الخادم وأنفذ بعض وظائف المعاملات وفي بعض الأحيان يعمل وفي بعض الأحيان لا يفعل ذلك. في بعض الأحيان يستمر في العمل لمدة 5-6 مرات ثم يتوقف فجأة.

TX Manager و DS Config -

<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
    </bean>

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="resourceRef" value="true" />
        <property name="jndiName" value="java:comp/env/jdbc/MyDBInstance" />
    </bean>
هل كانت مفيدة؟

المحلول

هل قمت بتكوين DataSource في الربيع أو Tomcat؟ (لدى Tomcat بعض الإعدادات الافتراضية الغريبة التي يرتكبها Auto بعد كل عبارة أعتقد أنها تجعل من الصعب تشغيل DataSourCetransActionManager في الأعلى)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top