I am facing serious problem spending nights not getting any clue.
My Flow : MDB > SessionBean > Service Objects.
I have issue of duplicate ApplicationContext. It is loading ApplicationContext 100 time (=number of beans) and application server (weblogic 9.2 )is dying eventually
I have several Message-driven beans and I want them all to share the same applicationContext.xml ("applicationContext-main");
My MDB Initiation Code :
================================================== ========
public class DareBEMEMSGatewayMDB extends AbstractJmsMessageDrivenBean {
/** Logger available to subclasses */
protected final Log logger = LogFactory.getLog(getClass());
private MessageDrivenContext ctx;
public void setMessageDrivenContext(MessageDrivenContext
messageDrivenContext) {
this.ctx = messageDrivenContext;
setBeanFactoryLocator(ContextSingletonBeanFactoryL ocator.getInstance("file:/app/fao/dare/applications/properties/beanRefContext.xml"));
setBeanFactoryLocatorKey("applicationContext-main");
}
MessageData messageData = null;
public DareBEMEMSGatewayMDB() {
}
public void onEjbCreate() {
logger.debug("DareBEMEMSGatewayMDB instance created");
messageProcessor = ((CoreMessageProcessor) getBeanFactory().getBean(
DareCoreConstants.CORE_MESSAGE_PROCESSOR));
edmService = ((EdmService) getBeanFactory().getBean(
DareCoreConstants.EDM_SERVICE));
//System.out.println("DareBEMEMSGatewayMDB :"+messageProcessor);
}
================================================== ========
My Session Bean Code :
================================================== ========public class MessageProcessorEJB extends AbstractStatelessSessionBean implements CoreMessageProcessor {
private SessionContext sessionContext;
private DareMessageFlowHandler dareMessageFlowHandler = null;
public MessageProcessorEJB() {
logger.debug("MessageProcessorEJB constructor called");
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
setBeanFactoryLocator(ContextSingletonBeanFactoryL ocator.getInstance("file:/app/fao/dare/applications/properties/beanRefContext.xml"));
setBeanFactoryLocatorKey("applicationContext-main");
}
public void onEjbCreate() {
logger.debug("MessageProcessorEJB instance created");
dareMessageFlowHandler = ((DareMessageFlowHandler) getBeanFactory().getBean(
DareCoreConstants.FLOW_HANDLER));
//System.out.println("DareGatewayMDB :"+messageProcessor);
}
================================================== ========
My ejb-jar.xml
================================================== ========
<message-driven>
<ejb-name>dareBEMEMSGatewayMDB</ejb-name>
<ejb-class>com.dare.jms.support.DareBEMEMSGatewayMDB</ejb-class>
<transaction-type>Container</transaction-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>subscriptionDurability</activation-config-property-name>
<activation-config-property-value>NonDurable</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>auto-acknowledge</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
</activation-config>
<env-entry>
<env-entry-name>ejb/BeanFactoryPath</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>file:/app/fao/dare/applications/properties/dareCoreConfig.xml</env-entry-value>
</env-entry>
</message-driven>
================================================== ========
weblogic-ejb-jar.xml
================================================== =======
<weblogic-enterprise-bean>
<ejb-name>dareBEMEMSGatewayMDB</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>10</max-beans-in-free-pool>
<initial-beans-in-free-pool>5</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>com.csfb.dare.EmsDareInputQueue</destination-jndi-name>
<connection-factory-jndi-name>com.csfb.dare.EMSQueueConnectionFactory</connection-factory-jndi-name>
<generate-unique-jms-client-id>true</generate-unique-jms-client-id>
<max-messages-in-transaction>5</max-messages-in-transaction>
</message-driven-descriptor>
<jndi-name>jms/DareBEMEMSGatewayMDB</jndi-name>
</weblogic-enterprise-bean>
================================================== =======
Pls tell me where am I lacking ...



Reply With Quote
).
