Je fais face à l'exception suivante:
weblogic.transaction.internal.TimedOutException: la transaction a expiré après 300 secondes
cela est défini dans le bean EJB de session sans état en tant que javax.transaction.UserTransaction jtaTransaction.setTransactionTimeout (300) mais je ne sais pas où, dans la console d'application, définir cette propriété.
Après vous être connecté, sur la page d'accueil de la console du serveur, vous devriez voir 3 sections:
Sous Configurations des services il y a la sous-section Autres services. Cliquez sur le lien Configuration JTA sous Autres services. Le délai d'expiration de la transaction doit être le paramètre le plus élevé sur la page affichée, étiqueté Secondes d'expiration.
Eu le même problème, merci mikej.
Dans WLS 10.3, cette configuration se trouve dans le menu Services> JTA, ou si vous cliquez sur le nom de domaine (premier élément du menu) - sur les onglets Configuration> JTA .
Dans Weblogic 9.2 la configuration via la console est la suivante:
Je crois que la valeur par défaut était 60
. N'oubliez pas d'utiliser Release Configuration
après avoir modifié le champ.
Le lien ci-dessus est plutôt obsolète. Pour WebLogic 12c, vous pouvez définir le délai d'expiration des transactions dans un descripteur de transaction pour chaque EJB dans le descripteur de déploiement WebLogic weblogic-ejb-jar.xml, voir Référence des descripteurs de déploiement weblogic-ejb-jar.xml .
Pour un message piloté, cela ressemble à ceci:
<weblogic-enterprise-bean>
<ejb-name>TestMessageBeanLow</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>1</max-beans-in-free-pool>
</pool>
<destination-jndi-name>jms/ActiveMQ/TestRequestQueue_LOW</destination-jndi-name>
<connection-factory-jndi-name>jms/ActiveMQ/TestConnectionFactory</connection-factory-jndi-name>
</message-driven-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>60</trans-timeout-seconds>
</transaction-descriptor>
<resource-description>
<res-ref-name>jms/ConnectionFactory</res-ref-name>
<jndi-name>jms/ActiveMQ/TestConnectionFactory</jndi-name>
</resource-description>
</weblogic-enterprise-bean>
C'est possible au niveau de l'application. Cliquez sur l'EJB sous le déploiement (comme Accueil>> Résumé des déploiements>). Cliquez sur l'onglet Configuration et il y a "Délai d'expiration de la transaction:"
Si vous ne souhaitez pas modifier le délai d'expiration par défaut à l'échelle du domaine, votre meilleure option consiste à modifier le descripteur de déploiement en définissant l'attribut trans-timeout-seconds dans le weblogic-ejb-jar.xml - voir http: //docs.Oracle.com/cd/E11035_01/wls100/jta/trxejb.html
Cela remplace la valeur par défaut "Délai d'attente secondes", uniquement pour cet EJB spécifique, tout en laissant tous les autres EJB inchangés.