Search in sources :

Example 1 with Entity

use of com.swiftmq.mgmt.Entity in project swiftmq-ce by iitsoftware.

the class TopicBroker method addRemoteSubscriptionUsage.

private void addRemoteSubscriptionUsage(String routerName, String topicName) {
    if (ctx.remoteSubscriberList == null)
        return;
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace("sys$topicmanager", tracePrefix + "addRemoteSubscriptionUsage, routerName=" + routerName + ", topicName=" + topicName);
    try {
        Entity rEntity = ctx.remoteSubscriberList.getEntity(routerName);
        if (rEntity == null) {
            rEntity = ctx.remoteSubscriberList.createEntity();
            rEntity.setName(routerName);
            rEntity.createCommands();
            ctx.remoteSubscriberList.addEntity(rEntity);
        }
        EntityList tEntityList = (EntityList) rEntity.getEntity("topics");
        if (tEntityList.getEntity(topicName) == null) {
            Entity entity = tEntityList.createEntity();
            entity.setName(topicName);
            entity.createCommands();
            tEntityList.addEntity(entity);
        }
    } catch (Exception e) {
    }
}
Also used : Entity(com.swiftmq.mgmt.Entity) EntityList(com.swiftmq.mgmt.EntityList) EntityRemoveException(com.swiftmq.mgmt.EntityRemoveException) QueueTransactionClosedException(com.swiftmq.swiftlet.queue.QueueTransactionClosedException) JMSException(javax.jms.JMSException) QueueException(com.swiftmq.swiftlet.queue.QueueException)

Example 2 with Entity

use of com.swiftmq.mgmt.Entity in project swiftmq-ce by iitsoftware.

the class TopicBroker method removeRemoteSubscriptionUsage.

private void removeRemoteSubscriptionUsage(String routerName, String topicName) {
    if (ctx.remoteSubscriberList == null)
        return;
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace("sys$topicmanager", tracePrefix + "removeRemoteSubscriptionUsage, routerName=" + routerName + ", topicName=" + topicName);
    try {
        Entity rEntity = ctx.remoteSubscriberList.getEntity(routerName);
        if (rEntity != null) {
            EntityList tEntityList = (EntityList) rEntity.getEntity("topics");
            Entity entity = tEntityList.getEntity(topicName);
            if (entity != null)
                tEntityList.removeEntity(entity);
            Map map = tEntityList.getEntities();
            if (map == null || map.size() == 0)
                ctx.remoteSubscriberList.removeEntity(rEntity);
        }
    } catch (Exception e) {
    }
}
Also used : Entity(com.swiftmq.mgmt.Entity) EntityList(com.swiftmq.mgmt.EntityList) EntityRemoveException(com.swiftmq.mgmt.EntityRemoveException) QueueTransactionClosedException(com.swiftmq.swiftlet.queue.QueueTransactionClosedException) JMSException(javax.jms.JMSException) QueueException(com.swiftmq.swiftlet.queue.QueueException)

Example 3 with Entity

use of com.swiftmq.mgmt.Entity in project swiftmq-ce by iitsoftware.

the class StreamsJob method doAction.

private void doAction(boolean b) throws JobException {
    Entity domain = ctx.root.getEntity("domains").getEntity(domainName);
    if (domain == null)
        throw new JobException("Domain '" + domainName + "' is undefined!", null, false);
    Entity pkg = domain.getEntity("packages").getEntity(packageName);
    if (pkg == null)
        throw new JobException("Package '" + packageName + "' is undefined!", null, false);
    Entity entity = pkg.getEntity("streams").getEntity(name);
    if (entity == null)
        throw new JobException("Stream '" + name + "' is undefined!", null, false);
    Property prop = entity.getProperty("enabled");
    boolean enabled = ((Boolean) prop.getValue()).booleanValue();
    try {
        if (enabled != b)
            prop.setValue(new Boolean(b));
    } catch (Exception e) {
        throw new JobException(e.getMessage(), e, false);
    }
}
Also used : JobException(com.swiftmq.swiftlet.scheduler.JobException) Entity(com.swiftmq.mgmt.Entity) Property(com.swiftmq.mgmt.Property) JobException(com.swiftmq.swiftlet.scheduler.JobException)

Example 4 with Entity

use of com.swiftmq.mgmt.Entity in project swiftmq-ce by iitsoftware.

the class NontransactedQueueSession method visit.

public void visit(CreateConsumerRequest req) {
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/visitCreateConsumerRequest");
    CreateConsumerReply reply = (CreateConsumerReply) req.createReply();
    try {
        ctx.activeLogin.getResourceLimitGroup().incConsumers();
    } catch (ResourceLimitException e) {
        reply.setOk(false);
        reply.setException(new JMSException(e.toString()));
        reply.send();
        return;
    }
    QueueImpl queue = req.getQueue();
    String messageSelector = req.getMessageSelector();
    String queueName = null;
    try {
        queueName = queue.getQueueName();
    } catch (JMSException ignored) {
    }
    try {
        if (!queueName.endsWith('@' + SwiftletManager.getInstance().getRouterName()))
            throw new InvalidDestinationException("Queue '" + queueName + "' is not local! Can't create a Consumer on it!");
        int consumerId = 0;
        QueueConsumer consumer = null;
        consumerId = ArrayListTool.setFirstFreeOrExpand(consumerList, null);
        consumer = new QueueConsumer(ctx, queueName, messageSelector);
        consumerList.set(consumerId, consumer);
        consumer.createReadTransaction();
        consumer.createTransaction();
        reply.setOk(true);
        reply.setQueueConsumerId(consumerId);
        if (receiverEntityList != null) {
            Entity consEntity = receiverEntityList.createEntity();
            consEntity.setName(queueName + "-" + consumerId);
            consEntity.setDynamicObject(consumer);
            consEntity.createCommands();
            Property prop = consEntity.getProperty("queue");
            prop.setValue(queueName);
            prop.setReadOnly(true);
            prop = consEntity.getProperty("selector");
            if (messageSelector != null) {
                prop.setValue(messageSelector);
            }
            prop.setReadOnly(true);
            receiverEntityList.addEntity(consEntity);
        }
    } catch (InvalidSelectorException e) {
        ctx.activeLogin.getResourceLimitGroup().decConsumers();
        ctx.logSwiftlet.logWarning("sys$jms", ctx.tracePrefix + "/CreateConsumer has invalid Selector: " + e);
        if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/CreateConsumer has invalid Selector: " + e);
        reply.setOk(false);
        reply.setException(e);
    } catch (Exception e1) {
        ctx.activeLogin.getResourceLimitGroup().decConsumers();
        ctx.logSwiftlet.logWarning("sys$jms", ctx.tracePrefix + "/Exception during create consumer: " + e1);
        if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/Exception during create consumer: " + e1);
        reply.setOk(false);
        reply.setException(e1);
    }
    reply.send();
}
Also used : Entity(com.swiftmq.mgmt.Entity) InvalidSelectorException(javax.jms.InvalidSelectorException) InvalidDestinationException(javax.jms.InvalidDestinationException) JMSException(javax.jms.JMSException) Property(com.swiftmq.mgmt.Property) ResourceLimitException(com.swiftmq.swiftlet.auth.ResourceLimitException) QueueImpl(com.swiftmq.jms.QueueImpl) JMSException(javax.jms.JMSException) ResourceLimitException(com.swiftmq.swiftlet.auth.ResourceLimitException) InvalidSelectorException(javax.jms.InvalidSelectorException) InvalidDestinationException(javax.jms.InvalidDestinationException)

Example 5 with Entity

use of com.swiftmq.mgmt.Entity in project swiftmq-ce by iitsoftware.

the class NontransactedTopicSession method visit.

public void visit(CreateSubscriberRequest req) {
    if (ctx.traceSpace.enabled)
        ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/visitCreateSubscriberRequest");
    CreateSubscriberReply reply = (CreateSubscriberReply) req.createReply();
    try {
        ctx.activeLogin.getResourceLimitGroup().incConsumers();
    } catch (ResourceLimitException e) {
        reply.setOk(false);
        reply.setException(new JMSException(e.toString()));
        reply.send();
        return;
    }
    TopicImpl topic = req.getTopic();
    String messageSelector = req.getMessageSelector();
    boolean noLocal = req.isNoLocal();
    try {
        Entity subEntity = null;
        if (subscriberEntityList != null)
            subEntity = subscriberEntityList.createEntity();
        int consumerId = 0;
        TopicConsumer consumer = null;
        if (topic.getType() == DestinationFactory.TYPE_TOPIC) {
            consumerId = ArrayListTool.setFirstFreeOrExpand(consumerList, null);
            consumer = new TopicConsumer(ctx, topic, messageSelector, noLocal);
            consumerList.set(consumerId, consumer);
            if (subEntity != null) {
                Property prop = subEntity.getProperty("topic");
                prop.setReadOnly(false);
                prop.setValue(topic.getTopicName());
                prop.setReadOnly(true);
                prop = subEntity.getProperty("boundto");
                prop.setReadOnly(false);
                prop.setValue(topic.getQueueName());
                prop.setReadOnly(true);
                subEntity.setDynamicObject(consumer);
            }
            if (subEntity != null)
                subEntity.setName(topic.getTopicName() + "-" + consumerId);
        } else {
            consumerId = ArrayListTool.setFirstFreeOrExpand(consumerList, null);
            consumer = new TopicConsumer(ctx, topic, messageSelector, noLocal);
            consumerList.set(consumerId, consumer);
            if (subEntity != null)
                subEntity.setDynamicObject(consumer);
            if (subEntity != null) {
                subEntity.setName(topic.getQueueName() + "-" + consumerId);
                Property prop = subEntity.getProperty("temptopic");
                prop.setReadOnly(false);
                prop.setValue(new Boolean(true));
                prop.setReadOnly(true);
                prop = subEntity.getProperty("boundto");
                prop.setReadOnly(false);
                prop.setValue(topic.getQueueName());
                prop.setReadOnly(true);
            }
        }
        consumer.setAutoCommit(req.isAutoCommit());
        consumer.createReadTransaction();
        consumer.createTransaction();
        reply.setOk(true);
        reply.setTopicSubscriberId(consumerId);
        reply.setTmpQueueName((consumer).getQueueName());
        if (subEntity != null) {
            Property prop = subEntity.getProperty("nolocal");
            prop.setReadOnly(false);
            prop.setValue(new Boolean(noLocal));
            prop.setReadOnly(true);
            subEntity.createCommands();
            prop = subEntity.getProperty("selector");
            if (messageSelector != null) {
                prop.setValue(messageSelector);
            }
            prop.setReadOnly(true);
            subscriberEntityList.addEntity(subEntity);
        }
    } catch (InvalidSelectorException e) {
        ctx.activeLogin.getResourceLimitGroup().decConsumers();
        ctx.logSwiftlet.logWarning("sys$jms", ctx.tracePrefix + "/CreateSubscriber has invalid Selector: " + e);
        if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/CreateSubscriber has invalid Selector: " + e);
        reply.setOk(false);
        reply.setException(e);
    } catch (Exception e1) {
        ctx.activeLogin.getResourceLimitGroup().decConsumers();
        ctx.logSwiftlet.logWarning("sys$jms", ctx.tracePrefix + "/Exception during create subscriber: " + e1);
        if (ctx.traceSpace.enabled)
            ctx.traceSpace.trace("sys$jms", ctx.tracePrefix + "/Exception during create subscriber (req=" + req + "): \n" + SwiftUtilities.getStackTrace(e1));
        reply.setOk(false);
        reply.setException(e1);
    }
    reply.send();
}
Also used : Entity(com.swiftmq.mgmt.Entity) InvalidSelectorException(javax.jms.InvalidSelectorException) JMSException(javax.jms.JMSException) JMSException(javax.jms.JMSException) ResourceLimitException(com.swiftmq.swiftlet.auth.ResourceLimitException) InvalidSelectorException(javax.jms.InvalidSelectorException) TopicImpl(com.swiftmq.jms.TopicImpl) Property(com.swiftmq.mgmt.Property) ResourceLimitException(com.swiftmq.swiftlet.auth.ResourceLimitException)

Aggregations

Entity (com.swiftmq.mgmt.Entity)179 Property (com.swiftmq.mgmt.Property)154 JMSException (javax.jms.JMSException)149 InvalidSelectorException (javax.jms.InvalidSelectorException)147 ResourceLimitException (com.swiftmq.swiftlet.auth.ResourceLimitException)140 InvalidDestinationException (javax.jms.InvalidDestinationException)105 TopicImpl (com.swiftmq.jms.TopicImpl)42 QueueImpl (com.swiftmq.jms.QueueImpl)35 com.swiftmq.jms (com.swiftmq.jms)16 EntityList (com.swiftmq.mgmt.EntityList)15 EntityRemoveException (com.swiftmq.mgmt.EntityRemoveException)11 Map (java.util.Map)10 Iterator (java.util.Iterator)9 MessageSelector (com.swiftmq.ms.MessageSelector)7 EntityAddException (com.swiftmq.mgmt.EntityAddException)5 QueueException (com.swiftmq.swiftlet.queue.QueueException)2 QueueTransactionClosedException (com.swiftmq.swiftlet.queue.QueueTransactionClosedException)2 JobException (com.swiftmq.swiftlet.scheduler.JobException)2 XAContextException (com.swiftmq.swiftlet.xa.XAContextException)2 HashMap (java.util.HashMap)2