/**
* Options are activated and become effective only after calling this method.
*/
public
void
activateOptions() {
TopicConnectionFactory topicConnectionFactory;
try
{
Context jndi;
LogLog.debug(
"Getting initial context."
);
if
(initialContextFactoryName !=
null
) {
Properties env =
new
Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, initialContextFactoryName);
if
(providerURL !=
null
) {
env.put(Context.PROVIDER_URL, providerURL);
}
else
{
LogLog.warn(
"You have set InitialContextFactoryName option but not the "
+
"ProviderURL. This is likely to cause problems."
);
}
if
(urlPkgPrefixes !=
null
) {
env.put(Context.URL_PKG_PREFIXES, urlPkgPrefixes);
}
if
(securityPrincipalName !=
null
) {
env.put(Context.SECURITY_PRINCIPAL, securityPrincipalName);
if
(securityCredentials !=
null
) {
env.put(Context.SECURITY_CREDENTIALS, securityCredentials);
}
else
{
LogLog.warn(
"You have set SecurityPrincipalName option but not the "
+
"SecurityCredentials. This is likely to cause problems."
);
}
}
jndi =
new
InitialContext(env);
}
else
{
jndi =
new
InitialContext();
}
LogLog.debug(
"Looking up ["
+ tcfBindingName +
"]"
);
topicConnectionFactory = (TopicConnectionFactory) lookup(jndi, tcfBindingName);
LogLog.debug(
"About to create TopicConnection."
);
if
(userName !=
null
) {
topicConnection = topicConnectionFactory.createTopicConnection(userName, password);
}
else
{
topicConnection = topicConnectionFactory.createTopicConnection();
}
LogLog.debug(
"Creating TopicSession, non-transactional, "
+
"in AUTO_ACKNOWLEDGE mode."
);
topicSession = topicConnection.createTopicSession(
false
, Session.AUTO_ACKNOWLEDGE);
LogLog.debug(
"Looking up topic name ["
+ topicBindingName +
"]."
);
Topic topic = (Topic) lookup(jndi, topicBindingName);
LogLog.debug(
"Creating TopicPublisher."
);
topicPublisher = topicSession.createPublisher(topic);
LogLog.debug(
"Starting TopicConnection."
);
topicConnection.start();
jndi.close();
}
catch
(JMSException e) {
errorHandler.error(
"Error while activating options for appender named ["
+ name +
"]."
, e,
ErrorCode.GENERIC_FAILURE);
}
catch
(NamingException e) {
errorHandler.error(
"Error while activating options for appender named ["
+ name +
"]."
, e,
ErrorCode.GENERIC_FAILURE);
}
catch
(RuntimeException e) {
errorHandler.error(
"Error while activating options for appender named ["
+ name +
"]."
, e,
ErrorCode.GENERIC_FAILURE);
}
}