Queue Filter

Hi,
I am using a queue filter for prioritization. Scenario is a JDBC-XI-RFC and an EOIO. I have created the sender/receiver ID and created the queue filter for the Outbound EOIO. Ideally it should be directed to the XBTA* queue. When I test my scenario, it still goes to the XBTO* queue. I have the filter and all 21 queues activated.
I have followed the how to guide from SDN. Is there any additional configurations to be activated?
regards
Unni

Hi,
       Please check this link out for your help.
http://help.sap.com/saphelp_nw04/helpdata/en/04/827440c36ed562e10000000a155106/frameset.htm
Thanks,
Arijit Guha

Similar Messages

  • CIF : RSTRFCQDS RSTRFCQD DELETE UNWANTED QUEUES - FILTER

    Hi,
    We would like to delete some CIF queues in error status in our system.
    the report mentionned in the note  Note 763255 - Deleting a TID or a queue, work fine.
    but it has  limitation, we want to filter according the error message, meaning that depending on it, the queues should be delete or not.
    Does it need to change the stanard report(we did not find this option unfortunately), and customize this standard program or is there a way to do it?
    Thanks
    Best regards
    John

  • Mapping Issue

    Hi Gurus,
    I have a JDBC-XI-RFC scenario (EOIO), where in I had to use Enhanced receiver determination to split the calls to RFC's (Regular Vs Emergency). Emergency call was directed using the filter queue to change the priority. We have tested in many env (d,q, pre prod) & now when I moved to Prod I get a strange error. When it first come to the integration engine & if it requires a split it fails showing a mapping error. But if I re-trigger it flow succesfully. Please fing the log from "moni" below(1) & a sussesful log (2).
    Please see the below bolded log which I am getting confused
    In case of error I get
    <SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface>
    Else I get
    <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION</SAP:Interface>
    **(1)**
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Request Message Mapping
      -->
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">- <SOAP:Header>
    <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
      <SAP:MessageId>4A6DF427-B0EE-7444-E100-00000AAA0C0C</SAP:MessageId>
      <SAP:TimeSent>2009-07-28T13:37:05Z</SAP:TimeSent>
    <SAP:Sender>
      <SAP:Service>CIS_PROD_STORMS</SAP:Service>
    <SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface> *
      </SAP:Sender>
    <SAP:Receiver>
      <SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
      <SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>
      <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>
    <SAP:Mapping notRequired="M">
      <SAP:ObjectId>RNPgv18MOBmjhpr+oO1mNw==</SAP:ObjectId>
      <SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>
      <SAP:SP>-1</SAP:SP>
      </SAP:Mapping>
      </SAP:Receiver>
      <SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface>
      </SAP:Main>
    <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:QualityOfService>ExactlyOnceInOrder</SAP:QualityOfService>
      <SAP:QueueId>XI_ENV_SERIALIZE</SAP:QueueId>
      </SAP:ReliableMessaging>
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">EXCEPTION_DURING_EXECUTE</SAP:Code>
      <SAP:P1>com/sap/xi/tf/_MM_ENVISION_WO_TO_SAP_NOTIF_EMERG_</SAP:P1>
      <SAP:P2>com.sap.aii.utilxi.misc.api.BaseRuntimeException</SAP:P2>
      <SAP:P3>Fatal Error: com.sap.engine.lib.xml.parser.Parser~</SAP:P3>
    (2)
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Response
      -->
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30">
    <SOAP:Header>
    <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
      <SAP:MessageId>4A6DDA42-B138-7443-E100-00000AAA0C0C</SAP:MessageId>
      <SAP:TimeSent>2009-07-27T22:01:00Z</SAP:TimeSent>
    <SAP:Sender>
      <SAP:Service>CIS_PROD_STORMS</SAP:Service>
      <SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface>
      </SAP:Sender>
    <SAP:Receiver>
      <SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
      <SAP:Service>BS_ENVISION_SAP_REGULAR</SAP:Service>
      <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION</SAP:Interface>
    <SAP:Mapping notRequired="M">
      <SAP:ObjectId>oPLLbgxJOWimAK6rdZb/MA==</SAP:ObjectId>
      <SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>
      <SAP:SP>-1</SAP:SP>
      </SAP:Mapping>
      </SAP:Receiver>
    <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION</SAP:Interface> *
      </SAP:Main>
    <SAP:ReliableMessaging xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:QualityOfService>ExactlyOnceInOrder</SAP:QualityOfService>
      <SAP:QueueId>XI_ENV_SERIALIZE</SAP:QueueId>
      </SAP:ReliableMessaging>
    Regards
    UK

    Hi,
    Sorry, My text help was not working due to some IE setting & I can understand the message got cluttered.
    Anyways let me repost the actual thread,
    I have a JDBC-XI-RFC scenario which requires an Enhanced receiver determination and requires calling two different RFC programs(emergency, regular) based on that. I use a queue filter to direct to XBQA* for emergency. As I indicated, it seems working fine with d,q,preprod. When I move it to prod, it show me some maping issue. However when I retrigger the same from my moni, they execute succesfully. Please see the log below for a message that goes error & the log when it is succesful (retrigger).  Let me know if you need more details.
    When there is error Please see the last tag
    MI_TBL_WMS_SOURCE_STAGING_SDW_EGD is the sender
    <SAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
    <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
    <SAP:ProcessingMode>asynchronous</SAP:ProcessingMode>
    <SAP:MessageId>4A6DF427-B0EE-7444-E100-00000AAA0C0C</SAP:MessageId>
    <SAP:TimeSent>2009-07-28T13:37:05Z</SAP:TimeSent>
    <SAP:Sender>
    <SAP:Service>CIS_PROD_STORMS</SAP:Service>
    <SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface>
    </SAP:Sender>
    <SAP:Receiver>
    <SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
    <SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>
    <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>
    <SAP:Mapping notRequired="M">
    <SAP:ObjectId>RNPgv18MOBmjhpr+oO1mNw==</SAP:ObjectId>
    <SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>
    <SAP:SP>-1</SAP:SP>
    </SAP:Mapping>
    </SAP:Receiver>
    *<SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface>
    </SAP:Main>*
    Blelow is when its succesful
    <SAP:Interface namespace="urn:sap
    -com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>.
    Regards
    Unni
    Edited by: Unni Krishnan on Jul 28, 2009 5:06 PM

  • JMS (Transaction ???) problem, consumer receives all messages at once.

    Hallo, I have an application which implements asynch communication between the web and business layer using JMS.
    On a page a user can upload files, which are processed by the backend. For large files this can be a long running process, thats why we use JMS to send the file asynchronously and use JMS to update progress information on the page.
    The application works fine on JBoss 6 with HornetMQ.
    After porting to Weblogic I see consistently a strange phenomenon. The update messages from the processing backend logic are send as expected. But the receiver does not receive one message after another but receives all the messsages almost at once after only the producer has sent the last message.
    For me this is totally unexpected behavior and of course our progress bar on the page does not work properly, but merely jumps from 0 to 100% after the data has been processed.
    It looks like the consumer waits until the producer has finished its transaction. But how can this be possibly? I have learned that transaction never span producer - messagesystem - consumer.
    Example Code:
    Producer:
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.annotation.Resource;
    import javax.ejb.EJB;
    import javax.ejb.Stateless;
    import javax.interceptor.Interceptors;
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.apache.log4j.Logger;
    import com.sun.tools.ws.wsdl.document.jaxws.Exception;
    import dsde.core.aspects.DsdeException;
    import dsde.core.aspects.ExceptionHandler;
    import dsde.core.entity.Data;
    @Stateless
    @Interceptors(ExceptionHandler.class)
    public class ParserBean implements Parser {
         private Logger log = Logger.getLogger(this.getClass());
         @EJB
         private DataDAO dataDAO;
         //Weblogic
         @Resource(mappedName="jms.BackQueue")
         //Jboss
         //@Resource(mappedName="queue/dsdeBackQueue")
         private Destination backQueue;
         //Weblogic
         @Resource(mappedName="jms.dsdeConnectionFactory")
         //JBoss
         //@Resource(mappedName="XAConnectionFactory")
         private ConnectionFactory connectionFactory;
         private Connection connection;
         @Override
         public void parse(String text, String description, String sessionId) throws DsdeException{
              double percentDone = 0;
              double j = 0.0;
              //Simuliere was langdauerndes, schwieriges
              for (int i=0; i < text.length(); i++) {
                   j = i;
                   percentDone = j / text.length() * 100;
                   try {
                        Thread.sleep(1000);
                   } catch (InterruptedException e) {
                        log.error(e);
                   if (i % 2 == 0) {
                        //periodisch das Frontend mit dem Fortschritt updaten
                        sendFeedback((int)percentDone, sessionId);
              //Zum Schluss noch senden dass wir fertig sind
              //Sonst wird der Send Button nicht wieder aktiv
              percentDone=100;
              sendFeedback((int)percentDone, sessionId);
              //Jetzt wird noch richtig geparsed :-)
              String[] words = text.split(" ");
              //Entity konstruieren
              Data data = new Data(description, words);
              //Das Ergebnis in die Datenbank schreiben
              dataDAO.saveData(data);
         private void sendFeedback(int percentDone, String sessionId) {
              Session session = null;
              try {
                   session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                   MessageProducer producer = session.createProducer(backQueue);
                   producer.setTimeToLive(50000);
                   producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                   TextMessage message = session.createTextMessage();
                   message.setJMSCorrelationID(sessionId);
                   message.setText("" + percentDone);
                   producer.send(message);
                   log.info("ParserBean has sent " + percentDone);
              } catch (JMSException e) {
                   log.error(e);
              } finally {
                   if (session != null) {
                        try {
                             session.close();
                        } catch (JMSException e) {
                             log.error(e);
         @PostConstruct
         public void init(){
              try {
                   connection = connectionFactory.createConnection();
              } catch (JMSException e) {
                   log.error(e);
         @PreDestroy
         public void close() {
              try {
                   connection.close();
              } catch (JMSException e) {
                   log.error(e);
    }Consumer:
    import javax.annotation.ManagedBean;
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.faces.bean.SessionScoped;
    import javax.faces.context.FacesContext;
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Queue;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.servlet.http.HttpSession;
    import org.apache.log4j.Logger;
    @ManagedBean
    @SessionScoped
    public class FeedbackReceiverBean implements MessageListener {
         private Logger log = Logger.getLogger(this.getClass());
         //jndi names of managed objects
         private String connectionFactoryName;
         private String queueName;
         private Connection connection;
         private Session session;
         private int percent;
         private boolean disabled;
         public boolean isDisabled() {
              return disabled;
         public void setDisabled(boolean disabled) {
              this.disabled = disabled;
         public int getPercent() {
              return percent;
         public void setPercent(int percent) {
              this.percent = percent;
         public void setConnectionFactoryName(String connectionFactoryName) {
              this.connectionFactoryName = connectionFactoryName;
         public void setQueueName(String queueName) {
              this.queueName = queueName;
         @PostConstruct
         public void init() throws NamingException, JMSException {
              FacesContext facesContext = FacesContext.getCurrentInstance();
              HttpSession httpSession = (HttpSession) facesContext.getExternalContext().getSession(false);
              String sessionId = httpSession.getId();
              Context context = new InitialContext();
              ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(this.connectionFactoryName);
              Queue queue = (Queue) context.lookup(this.queueName);
              this.connection = connectionFactory.createConnection();
              this.session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
              String filter = "JMSCorrelationID = '" + sessionId + "'";
              MessageConsumer consumer = session.createConsumer(queue, filter);
              consumer.setMessageListener(this);
              connection.start();
         @PreDestroy
         public void close() throws JMSException {
              this.session.close();
              this.connection.close();
         @Override
         public void onMessage(Message message) {
              if (message instanceof TextMessage) {
                   TextMessage textMessage = (TextMessage) message;
                   try {
                        this.percent = Integer.parseInt(textMessage.getText());
                        if (percent >= 100) {
                             this.disabled = false;
                        log.info("Prozent " + percent);
                   } catch (JMSException e) {
                        log.error(e);
              else {
                   log.error(message.toString() + " is no TextMessage");
         public void disable() {
              this.disabled = true;
    }Configuration:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <connection-factory name="dsdeConnectionFcatory">
        <default-targeting-enabled>true</default-targeting-enabled>
        <jndi-name>jms/dsdeConnectionFactory</jndi-name>
        <default-delivery-params>
          <default-delivery-mode>Persistent</default-delivery-mode>
          <default-time-to-deliver>0</default-time-to-deliver>
          <default-time-to-live>100</default-time-to-live>
          <default-priority>4</default-priority>
          <default-redelivery-delay>0</default-redelivery-delay>
          <send-timeout>10</send-timeout>
          <default-compression-threshold>2147483647</default-compression-threshold>
        </default-delivery-params>
        <client-params>
          <client-id-policy>Restricted</client-id-policy>
          <subscription-sharing-policy>Exclusive</subscription-sharing-policy>
          <messages-maximum>10</messages-maximum>
        </client-params>
        <transaction-params>
          <xa-connection-factory-enabled>true</xa-connection-factory-enabled>
        </transaction-params>
        <security-params>
          <attach-jmsx-user-id>false</attach-jmsx-user-id>
        </security-params>
      </connection-factory>
      <queue name="dsdeQueue">
        <sub-deployment-name>dsdeQueue</sub-deployment-name>
        <jndi-name>jms/dsdeQueue</jndi-name>
      </queue>
      <queue name="dsdeFeedbackQueue">
        <sub-deployment-name>dsdeFeedbackQueue</sub-deployment-name>
        <jndi-name>jms/dsdeFeedbackQueue</jndi-name>
      </queue>
      <queue name="dsdeBackQueue">
        <sub-deployment-name>dsdeBackQueue</sub-deployment-name>
        <jndi-name>jms/BackQueue</jndi-name>
      </queue>
    </weblogic-jms>Any help would be greatly appreciated.
    Thanks,
    Hans

    Thanks for posting your analysis!
    I think your solution is probably best.
    FYI: Your JMS session was never a "transacted" session. It's definitely confusing, but the term "transacted session" has a special meaning in JMS, it actually refers to a session that is not XA/JTA aware and instead maintains an internal local transaction that's scoped only to the current JMS session's operations. A transacted session is created by passing "true" to the first parameter of createSession, and such a session's local transaction is committed by calling session.commit() (which starts a new transaction). To further add to the confusion, I think that JEE servers are actually obligated to ignore requests to set the transacted flag to true -- WebLogic does this trick by secretly wrapping access to the JMS API when applications lookup JMS connection factories via a resource reference.
    Regards,
    Tom

  • Problem with Enhanced Receiver Deterrmination

    Hi,
    I am facing an issue with the Enhanced Receiver Deterrmination (ERD) at runtime for an EOIO scenario. When a message gets split for the defferent service it fails complaining about mapping. If I retrigger it gets delivered.
    However if I provide a queue filter this failure does not occur even if logically that queue filter definition does not make any sense to the scenario. for eg: The filter is maintained for a different scenario say A, but scenario B which has ERD will work. I am well confused, shoot your questions pls. Please help in case you have faced similar issue. We are on 07s SP17.
    regards
    Unni

    Hi Venkat,
    You are correct, I use extended Receiver determination. As I have mentioned earlier, the scenario works well if I specify the queue filter, so all related objects exists.
    Basically the split message with out a queue filter is poinitng back to the source message. But if I re-trigger from moni it goes well. With a queue filter, it works without a cause.
    See the sample message for error
    - <SAP:Receiver>
      <SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
      <SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>
      <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>
    - <SAP:Mapping notRequired="M">
      <SAP:ObjectId>oPLLbgxJOWimAK6rdZb/MA==</SAP:ObjectId>
      <SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>
      <SAP:SP>-1</SAP:SP>
      </SAP:Mapping>
      </SAP:Receiver>
      *<SAP:Interface namespace="http://enbridge.com/envision/envision2/jdbc">MI_TBL_WMS_SOURCE_STAGING_SDW_EGD</SAP:Interface> *
      </SAP:Main>
    *The actual should be *
    - <SAP:Receiver>
      <SAP:Party agency="http://sap.com/xi/XI" scheme="XIParty" />
      <SAP:Service>BS_ENVISION_SAP_EMERG</SAP:Service>
      <SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>
    - <SAP:Mapping notRequired="M">
      <SAP:ObjectId>RNPgv18MOBmjhpr+oO1mNw==</SAP:ObjectId>
      <SAP:SWCV>oZGAQNmpEdym2dnSCqoHjQ==</SAP:SWCV>
      <SAP:SP>-1</SAP:SP>
      </SAP:Mapping>
      </SAP:Receiver>
      *<SAP:Interface namespace="urn:sap-com:document:sap:rfc:functions">ZWM_INBOUND_NOTIFICATION_EMERG</SAP:Interface>*
      </SAP:Main>

  • Filter for queue prioritization ...

    Hi guys,
    I have a question relating to filters for queue prioritization. I have defined filter for large messages (i.e. messages larger than 2048kB should go into XBTL queue). Is it possible to define another one that would say:
    "All messages from Sender Name XXXXX larger than 1024kB should be passed into XBTL queue" ?
    I know how to create such filters for other queues but XBTL queue is special case.
    Do you know how to do it?
    Thanks in advance!
    Regards
    Zbynek

    Hi,
    Please find the link for "How To prioritize XI messages in queues" below.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/59e837d3-0201-0010-c096-dc1869733413.reward me if useful. Let me know if ur issue not resolved.
    Thanks,
    Ramesh

  • Payload level filter JMS Adapter with Queue - not filtering

    Hi ,
    I have created AQ Queue in my Database, Using JMS Adapter i am able consume and produce the messages. I want a filter condition, which is not happening.
    The scenario is i have a field ImportInd in my XSD and i need to pick the message with ImportInd = 1, otherwise the message should lie on the queue.
    Please help me in this,
    Thanks,
    Padmini

    Trying to give you the counterparts I have in my working example.
    In my case the queue is on a separate machine, and the BPEL is deployed on a separate machine. Cross-domain security config needs to be done for these machines to be able to talk.
    In weblogic console: where BPEL is running.
    under deployment jmsadapter -> Outbound Connections -> jndi name is jms/PRISMQueue -> ConnectionFactoryLocation Property is jms/SoaCF
    where queue is configured.
    Under JMS Module Connection Factory Name is SoaConnectionFactory which JNDI name is jms/SoaCF
    Under JMS Module Queue Name SOAPostActivityStatusQueue which JNDI name is jms.SOAPostActivityStatusQueue
    Services>Messaging>JMSModules>MyModule>SOAPostActivityStatusQueue>
    JNDI name - jms.SOAPostActivityStatusQueue
    Adapter in BPEL/Composite-
    Destination - jms.SOAPostActivityStatusQueue
    JNDI - jms/PRISMQueue
    JCA:
    <adapter-config name="PostResponseFromPCService" adapter="JMS Adapter" wsdlLocation="PostResponseFromPCService.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="jms/PRISMQueue" UIJmsProvider="WLSJMS" UIConnectionName="tacoma"/>
    <endpoint-activation portType="Consume_Message_ptt" operation="Consume_Message">
    <activation-spec className="oracle.tip.adapter.jms.inbound.JmsConsumeActivationSpec">
    <property name="PayloadType" value="TextMessage"/>
    <property name="UseMessageListener" value="false"/>
    <property name="DestinationName" value="jms.SOAPostActivityStatusQueue"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    HTH.
    Thanks!

  • Inbound Queue - new filter

    Hi, i'm trying to create a new filter for an Inbound Queue using as reference the document <b>HowTo_prioritizeXImessages.pdf</b>.
    As I follow the document point by point, and after created a new Sender/ReceiverID for my Service (Epiphany) and choose as Message Category - Request the wild card (*) both for Interface Name/Interface Namespace, next I add a new filter for the IS Inbound Exactly Once for my SenderID created before.
    Using the functionallity Enter Test Message and after enter the value in the required fields the result turns me an error message as follows : <i><b>No filter found for your test message</b></i>.
    Can anyone help me regarding this question ??
    Thanks
    JMatos

    Hi, José,
    when you configure your sender and receiver id, enter your receiver interface and namespace into the message category instead of leaving it empty.
    Regards
    Cornelius

  • I have already reset the printing system after my Epson workforce 600 keeps saying "filter" stopped in the print queue...

    I have a Epson Workforce 600 all-in-one printer and it will STILL not print anything after the Mountain Lion upgrade.  I have downloaded the latest drivers from Apple's site, tried to print thru TextEdit, it connects via Verizon Wireless 4G hotspot Wi-Fi network, printer is getting signal, macbook picks up nearby printer and installs and configures it, but when looking in Print and Scan, it shows printer is "Idle".  Then when you try to get computer to communicate with printer via configuration utility, it says "communication error."  What else can I do??

    OS X Mountain Lion: Reset the printing system

  • Filter Coding Issues

    I've been following (roughly) the simple virus scanner interface that SUN provides, and adapted it into a slightly heavier weight filter that interfaces with libclamav. At first both were compiled using GCC, and I thought due to some of the weird problems I had when debugging flags were inserted, maybe Sun Studio would give better results. It hasn't, and I'm at a bit of a loss as to what to do next.
    The symptom is that parts of the message just dissapear, and I see the old mime boundaries within the message body, so it seems like there's some pointer indicating where the message starts that's being corrupted by something in my code.
    Interestingly, if I stop processing the message while still inside the headers, there is no problem, but that's not a very effective virus scanner if it can only look at the content type and filename of the part now is it?
    This happens regardless of whether I use GCC or CC, and I'm using 0.88.1 of clamav. The output message is shown last. It should be fairly obvious what's wrong with it.
    Here's my code, perhaps someone can tell me what I'm doing wrong.
    ** WARNING ** This IS NOT polished code, so please don't expect it to be perfect. It's clean, but includes absolute pathnames, and some other nauties that should be removed before anyone even thinks of reusing this. Once it actually works, I'll do the nessisary code cleanup, and release this to the community to do whatever anyone wants with.
    Makefile
    SERVER_ROOT=/opt/SUNWmsgsr
    INSTALL_LOCATION=/var/opt/SUNWmsgsr/site-programs/
    INCLUDE=-I${SERVER_ROOT}/include
    LIBPATH=-L${SERVER_ROOT}/lib
    CLAMLIBS=`/usr/local/bin/clamav-config --libs` -lclamav
    CLAMFLAGS=`/usr/local/bin/clamav-config --cflags`
    LIBS=-lmtasdk ${CLAMLIBS}
    FLAGS=${CLAMFLAGS}
    all:
            cc ${FLAGS} -o msgsr_clamav msgsr_clamav.c \
                    ${INCLUDE} ${LIBPATH} ${LIBS}
    install:
            cp msgsr_clamav ${INSTALL_LOCATION}
            cp msgsr_clamav.cnf ${INSTALL_LOCATION}************************************************
    Expansions
    CLAMLIBS=-L/usr/local/lib -lz -lbz2 -lpthread -lclamav
    CLAMFLAGS=-I/usr/local/include -xO4************************************************
    msgsr_clamav.c
    * msgsr_clamav
    * Interface the Sun Java System Message Server with LibClamAV
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <pthread.h>
    #include "clamav.h"     // LibClamAV Header
    #include "mtasdk.h"
    * A structure to store channel options
    typedef struct {
         /* Produce debug output? */
         int debug;
         // Maximum size (in bytes) attachment to scan
         int scan_maxsize;
         // Scan recursion level
         int scan_recursion_level;
         // Max files
         int scan_maxfiles;
         // Path to ClamAV Virus Database
         char db_dir[BIGALFA_SIZE+3];
         // Used Internally by ClamAV. Stored here for ease of access
         struct cl_node *root;
         unsigned int signo;
         struct cl_stat dbstat;
         pthread_mutex_t reload_mutex;
         // MIME types to ignore
         char ignore_mime_types[BIGALFA_SIZE+3];
         // Types of files to ignore
         char ignore_file_types[BIGALFA_SIZE+3];
         /* Unwanted MIME content types (ALWAYS stripped, never scanned) */
         char bad_mime_types[BIGALFA_SIZE+3];
         /* Unwanted file types (ALWAYS stripped, never scanned)*/
         char bad_file_types[BIGALFA_SIZE+3];
         /* Length of bmt string */
         size_t bmt_len;
         /* Length of bft string */
         size_t bft_len;
    } our_options_t;
    // A structure passed per message to contain message specific data, including open files, etc.
    typedef struct {
         // The filename of the temp file in use so it can be unlinked when we're done with it.
         char temp_file_name[BIGALFA_SIZE * 2 + 10];
         // The file * to the temp file in use, so we don't have to reopen it across calls to decode_inspect
         FILE *temp_file;
         // A pointer to the single instance of our_options_t that is shared across all threads
         our_options_t * options;
    } msg_temp_data_t;
    * Forward declarations
    static void error_exit(int ires, const char *msg);
    static void error_report(our_options_t *options, int ires, const char *func);
    static void error_reports(our_options_t *options, const char* errStr, const char *func);
    static int is_bad_mime_type(our_options_t *options, mta_decode_t *dctx, char *buf, size_t maxbuflen);
    static int is_bad_file_type(our_options_t *options, mta_opt_t *params, const char *param_name, char *buf, size_t maxbuflen);
    static int load_options(our_options_t *options);
    static mta_dq_process_message_t process_message;
    static mta_decode_read_t decode_read;
    static mta_decode_inspect_t decode_inspect;
    * main() -- Initialize the MTA SDK, load our options, and then
    * start the message processing loop.
    int main()
         int ires,ret;
         char error_msg[BIGALFA_SIZE+3];
         our_options_t options;
         * Initialize the MTA SDK
         * See explanatory comment 1
         if ((ires = mtaInit(0)))
              error_exit(ires, "Unable to initialize the MTA SDK");
         * Load our channel options
         * See explanatory comment 2
         if ((ires = load_options(&options)))
              error_exit(ires, "Unable to load our channel options");
         * Initialize the ClamAV Virus Engine and Database
         // Preconditions to initializing the ClamAV database
         options.root=NULL; options.signo=0;
         // Load the virus database
         mtaLog("cl_loaddbdir() loading database from %s",options.db_dir);
         if ((ret = cl_loaddbdir(options.db_dir, &options.root, &options.signo)))
              sprintf(error_msg,"cl_loaddbdir() error: %s", cl_strerror(ret));
              error_exit(MTA_NO,error_msg);
         mtaLog("cl_loaddbdir() loaded %d virus definitions",options.signo);
         // Internalize the virus database structure
         mtaLog("cl_build() initializing database");
         if((ret = cl_build(options.root)))
              sprintf(error_msg,"cl_build() error: %s", cl_strerror(ret));
              error_exit(MTA_NO,error_msg);
         // Keep track of database updates
         memset(&options.dbstat, 0, sizeof(struct cl_stat));
         cl_statinidir(options.db_dir, &options.dbstat);
         // Initialize our reload mutex
         if (ret = pthread_mutex_init(&options.reload_mutex,NULL))
              sprintf(error_msg,"pthread_mutex_init() error: %d", ret);
              error_exit(MTA_NO,error_msg);
         * Now process the queued messages. Be sure to indicate a
         * thread stack size sufficient to accomodate message
         * enqueue processing.
         * See explanatory comment 3
         if ((ires = mtaDequeueStart((void *)&options,
         process_message, NULL, 0)))
         error_exit(ires, "Error during dequeue processing");
         * All done
         cl_free(options.root);
         mtaDone();
         return(0);
    *Reloads the virus database and re-initializes the in memory structure
    * Loads a new virus database, then if all succeeds, it
    * swaps the new database with the old one.  It's assumed
    * clamav releases the database gracefully, but another mutex
    * may be required if this is not the case.
    static int reload_database(our_options_t *options)
         struct cl_node *newroot = NULL,*oldroot;
         char error_msg[BIGALFA_SIZE+3];
         int ret;
         unsigned int signo=0;
         if (pthread_mutex_trylock(&options->reload_mutex)) {     // Only one reload at a time thank you.
              if(cl_statchkdir(&options->dbstat) == 1) {     // Make sure we actually need an update
                   mtaLog("reload_database() Virus database is stale... reloading");
                   mtaLog("cl_loaddbdir() reloading database from %s",options->db_dir);
                   // Load the new virus database
                   if ((ret = cl_loaddbdir(options->db_dir, &newroot, &signo)))
                        mtaLog("cl_loaddbdir() error: %s", cl_strerror(ret));
                        return (-1);
                   mtaLog("cl_loaddbdir() loaded %d virus definitions",options->signo);
                   // Internalize the virus database structure
                   mtaLog("cl_build() re-initializing database");
                   if((ret = cl_build(newroot)))
                        mtaLog("cl_build() error: %s", cl_strerror(ret));
                        mtaLog("reload_database() Database reload aborted");
                        cl_free(newroot);
                        return (-2);
                   // Save a pointer to the old root
                   oldroot = options->root;
                   // Swap in the new root and signo
                   options->root = newroot;
                   options->signo = signo;
                   // Release the old root
                   cl_free(oldroot);
                   mtaLog("database_reload() Successfully loaded new virus database");
                   // Keep track of database updates
                   cl_statfree(&options->dbstat);
                   cl_statinidir(options->db_dir, &options->dbstat);
              pthread_mutex_unlock(&options->reload_mutex);
    * process_message() -- This routine is called by
    * mtaDequeueStart() to process each queued
    * message. We don&#31258; make use of ctx2, but
    * ctx1 is a pointer to our channel options.
    * See explanatory comment 4
    static int process_message(void **ctx2, void *ctx1, mta_dq_t *dq, const char *env_from, size_t env_from_len)
         const char *adr;
         int disp, ires;
         size_t len;
         mta_nq_t *nq;
         msg_temp_data_t msg_data;
         * Initializations
         nq = NULL;
         msg_data.options = (our_options_t *)ctx1;
         msg_data.temp_file = NULL;
         * Check the virus database to make sure it isn't stale
         * If it it's not currently reloading, and is stale, reload it.
         //if(cl_statchkdir(&(msg_data.options->dbstat)) == 1)
         //     reload_database(msg_data.options);
         * A little macro to do error checking on mta*() calls
         #define CHECK(f,x) \
         if ((ires = x)) { error_report(msg_data.options, ires, f); goto \
              done_bad; }
         * Start a message enqueue. Use the dequeue context to copy
         * envelope flags fromt the current message to this new
         * message being enqueued.
         * See explanatory comment 5
         CHECK("mtaEnqueueStart", mtaEnqueueStart(&nq, env_from, env_from_len, MTA_DQ_CONTEXT, dq, 0));
         * Process the envelope recipient list
         * See explanatory comment 6
         while (!(ires = mtaDequeueRecipientNext(dq, &adr, &len, 0)))
              * Add this envelope recipient address to the message
              * being enqueued. Use the dequeue context to copy
              * envelope flags for this recipient from the current
              * message to the new message.
              ires = mtaEnqueueTo(nq, adr, len, MTA_DQ_CONTEXT,
              dq, MTA_ENV_TO, 0);
              /* See explanatory comment 7 */
              disp = (ires) ? MTA_DISP_DEFERRED : MTA_DISP_RELAYED;
              CHECK("mtaDequeueRecipientDisposition", mtaDequeueRecipientDisposition(dq, adr, len,disp, 0));
         * A normal exit from the loop occurs when
         * mtaDequeueRecipientNext() returns an MTA_EOF status.
         * Any other status signifies an error.
         if (ires != MTA_EOF)
              error_report(msg_data.options, ires, "mtaDequeueRecipientNext");
              goto done_bad;
         * Begin the MIME decode of the message
         * See explanatory comment 8
         CHECK("mtaDecodeMessage",
              mtaDecodeMessage(
              /* Private context is our message data structure */
              (void *)&msg_data,
              /* Input is the message being dequeued */
              MTA_DECODE_DQ, (void *)dq,
              /* Output is the message being enqueued */
              MTA_DECODE_NQ, (void *)nq,
              /* Inspection routine */
              decode_inspect,
              /* Convert non-MIME formats to MIME */
              MTA_DECODE_THURMAN,
              0));
         * Finish the enqueue
         * NOTE: IT&#25285; IMPORTANT TO DO THIS before DOING THE
         * DEQUEUE. YOU WILL LOSE MAIL IF YOU DO THE DEQUEUE FIRST
         * and then THE ENQUEUE FAILS.
         * See explanatory text 9
         CHECK("mtaEnqueueFinish", mtaEnqueueFinish(nq, 0));
         nq = NULL;
         * Finish the dequeue
         CHECK("mtaDequeueFinish", mtaDequeueMessageFinish(dq, 0));
         * All done with this message
         return(MTA_OK);
    done_bad:
         * Abort any ongoing enqueue or dequeue
         if (nq)
              mtaEnqueueFinish(nq, MTA_ABORT, 0);
         if (dq)
              mtaDequeueMessageFinish(dq, MTA_ABORT, 0);
         * And return our error status
         return(ires);
    #undef CHECK
    * decode_inspect() -- This is the routine that inspects each
    * message part, deciding whether to accept
    * or reject it.
    * See explanatory comment 10
    static int decode_inspect(void *ctx, mta_decode_t *dctx, int data_type,const char *data, size_t data_len)
         char buf[BIGALFA_SIZE * 2 + 10];
         const char *virname;
         int i;
         static unsigned int part_c = 1;
         msg_temp_data_t *msg_data = (msg_temp_data_t *)ctx;
         strncpy(buf,data,data_len);
         buf[data_len] = 0;
         mtaLog("decode_inspect() (%d,%ud): %s",data_type,dctx,buf);
         switch (data_type)
              case MTA_DATA_HEADER:
              * See if the part has:
              * 1. A bad MIME content-type,
              * 2. A bad file name extension in the (deprecated)
              * NAME= content-type parameter, or
              * 3. A bad file name extension in the
              * FILENAME= content-disposition parameter.
              i = 0;
              if ((i = is_bad_mime_type((void *)msg_data->options, dctx, buf, sizeof(buf))) ||
                   is_bad_file_type((void *)msg_data->options,mtaDecodeMessageInfoParams(dctx,MTA_DECODE_CTYPE_PARAMS, NULL),"NAME", buf, sizeof(buf)) ||
                   is_bad_file_type((void *)msg_data->options,mtaDecodeMessageInfoParams(dctx,MTA_DECODE_CDISP_PARAMS, NULL),"FILENAME", buf, sizeof(buf)))
                   char msg[BIGALFA_SIZE*4 + 10];
                   * Replace this part with a text message indicating
                   * that the part&#30196; content has been deleted.
                   * See explanatory comment 11
                   if (i)
                        i = sprintf(msg,
                             "The content of this message part has been removed.\n"
                             "It contained a potentially harmful media type of %.*s",
                             strlen(buf)-2, buf+1);
                   else
                        i = sprintf(msg,
                             "The content of this message part has been removed.\n"
                             "It contained a potentially harmful file named '%s'", buf);
                   mtaLog("decode_inspect(): %s",msg);
                   return(mtaDecodeMessagePartDelete(dctx,
                        MTA_REASON, msg, i,
                        MTA_DECODE_CTYPE, "text", 4,
                        MTA_DECODE_CSUBTYPE, "plain", 5,
                        MTA_DECODE_CCHARSET, "us-ascii", 8,
                        MTA_DECODE_CDISP, "inline", 6,
                        MTA_DECODE_CLANG, "en", 2, 0));
              } break; // case MTA_DATA_HEADER:
              case MTA_DATA_TEXT:
              case MTA_DATA_BINARY:
                   if (msg_data->temp_file == NULL)
                        sprintf(msg_data->temp_file_name,"/tmp/%i.tmp",part_c++);
                        mtaLog("messageDecode(): Opening Temp File %s",msg_data->temp_file_name);
                        msg_data->temp_file = fopen(msg_data->temp_file_name,"wb");
                   fwrite(data,data_len,1,msg_data->temp_file);
                   return(MTA_OK);
                   break;
              case MTA_DATA_NONE:
                   fflush(msg_data->temp_file);
                   fclose(msg_data->temp_file);
                   msg_data->temp_file = NULL;
                   struct cl_limits limits;
                   memset(&limits, 0, sizeof(struct cl_limits));
                   /* maximal number of files in archive */;
                   limits.maxfiles = 1000;
                   /* maximal archived file size */
                   limits.maxfilesize = 10 * 1048576; /* 10 MB */
                   /* maximal recursion level */
                   limits.maxreclevel = 5;
                   /* maximal compression ratio */
                   limits.maxratio = 200;
                   /* disable memory limit for bzip2 scanner */
                   limits.archivememlim = 0;
                   i = cl_scanfile(msg_data->temp_file_name, &virname, NULL, msg_data->options->root,&limits,CL_SCAN_STDOPT);
                   unlink (msg_data->temp_file_name);
                   if(i == CL_VIRUS) {
                        char msg[BIGALFA_SIZE*4 + 10];
                        size_t idlen;
                        i = sprintf(msg,
                             "The content of this message part has been removed.\n"
                             "It contained the virus %s in a file named '%s'", virname,buf);
                        mtaDequeueInfo(dctx,MTA_ENV_ID,&buf,&idlen);
                        buf[idlen] = '\0';
                        mtaLog("decode_inspect(): Detected %s virus in part %i of msg ID %s",virname,0,buf);
                        return(mtaDecodeMessagePartDelete(dctx,
                             MTA_REASON, msg, i,
                             MTA_DECODE_CTYPE, "text", 4,
                             MTA_DECODE_CSUBTYPE, "plain", 5,
                             MTA_DECODE_CCHARSET, "us-ascii", 8,
                             MTA_DECODE_CDISP, "inline", 6,
                             MTA_DECODE_CLANG, "en", 2, 0));
                   } else {
                        if(i != CL_CLEAN)
                             mtaLog("decode_inspect() Error: %s scanning file %s",cl_strerror(i),msg_data->temp_file_name);
                        else
                             mtaLog("decode_inspect(): Part in file %s is clean",msg_data->temp_file_name);
                        //return(mtaDecodeMessagePartCopy(dctx, 0));
                        return(MTA_OK); break;
         return(MTA_OK);
    * is_bad_mime_type() -- See if the part&#30196; media type is in our
    * bad MIME content types, for example:
    * application/vbscript
    * See explanatory comment 13
    static int is_bad_mime_type(our_options_t *options,
    mta_decode_t *dctx, char *buf,
    size_t maxbuflen)
         const char *csubtype, *ctype;
         size_t i, len1, len2;
         char *ptr;
         * Sanity checks
         if (!options || !options->bmt_len ||
              !options->bad_mime_types[0] ||
              !dctx)
              return(0);
         * Get the MIME content type
         ctype = mtaDecodeMessageInfoString(dctx, MTA_DECODE_CTYPE,NULL, &len1);
         csubtype = mtaDecodeMessageInfoString(dctx,MTA_DECODE_CSUBTYPE,NULL, &len2);
         * Build the string: <0x01>type/subtype<0x01><0x00>
         ptr = buf;
         *ptr++ = (char)0x01;
         for (i = 0; i < len1; i++)
              *ptr++ = tolower(*ctype++);
         *ptr++ = '/';
         for (i = 0; i < len2; i++)
              *ptr++ = tolower(*csubtype++);
         *ptr++ = (char)0x01;
         *ptr = '\0';
         * Now see if the literal just built occurs in the list of
         * bad MIME content types
         return((strstr(options->bad_mime_types, buf)) ? -1 : 0);
    * is_bad_file_type() -- See if the part has an associated file
    * name whose file extension is in our list
    * of bad file names, such as .vbs.
    * See explanatory comment 14
    static int is_bad_file_type(our_options_t *options,
    mta_opt_t *params,
    const char *param_name, char *buf,
    size_t maxbuflen)
         const char *ptr1;
         char fext[BIGALFA_SIZE+2], *ptr2;
         size_t i, len;
         * Sanity checks
         if (!options || !options->bft_len || !params || !param_name)
              return(0);
         len = 0;
         buf[0] = '\0';
         if (mtaOptionString(params, param_name, 0, buf, &len,
              maxbuflen - 1) ||
              !len || !buf[0])
              * No file name parameter specified
              return(0);
         * A file name parameter was specified. Parse it to
         * extract the file extension portion, if any.
         ptr1 = strrchr(buf, '.');
         if (!ptr1)
              * No file extension specified
              return(0);
         * Now store the string created earlier in fext[]
         * Note that we drop the &#12539;&#12539;from the extension.
         ptr1++; /* Skip over the &#12539;&#12539;*/
         ptr2 = fext;
         *ptr2++ = (char)0x01;
         len = len - (ptr1 - buf);
         for (i = 0; i < len; i++)
              *ptr2++ = tolower(*ptr1++);
         *ptr2++ = (char)0x01;
         *ptr2++ = '\0';
         * Now return -1 if the string occurs in
         * options->bad_file_types.
         return((strstr(options->bad_file_types, fext)) ? -1 : 0);
    * load_options() -- Load our channel options from the channel&#30196;
    * option file
    * See explanatory comment 15
    static int load_options(our_options_t *options)
         char buf[BIGALFA_SIZE+1];
         size_t buflen, i;
         mta_opt_t *channel_opts;
         int ires;
         const char *ptr0;
         char *ptr1;
         * Initialize the our private channel option structure
         memset(options, 0, sizeof(our_options_t));
         * Set internal defaults for important features
         options->scan_maxsize = 10 * 1024 * 1024; // 10 MB
         options->scan_recursion_level = 10;
         options->scan_maxfiles = 200;
         strcpy(options->db_dir,cl_retdbdir()); // Default ClamAV Directory
         * Access the channel&#30196; option file
         * See explanatory comment 16
         channel_opts = NULL;
         if ((ires = mtaOptionStart(&channel_opts, "/var/opt/SUNWmsgsr/site-programs/msgsr_clamav.cnf", 0, 0)))
              mtaLog("Unable to access our channel option file");
              return(ires);
         * DEBUG=0|1
         options->debug = 0;
         mtaOptionInt(channel_opts, "DEBUG", 0, &options->debug);
         if (options->debug)
              mtaDebug(MTA_DEBUG_SDK, 0);
         * BAD_MIME_TYPES=type1/subtype1[,type2/subtype2[,...]]
         buf[0] = '\0';
         mtaOptionString(channel_opts, "BAD_MIME_TYPES", 0, buf,
         &buflen, sizeof(buf));
         * Now translate the comma separated list:
         * Type1/Subtype1[,Type2/Subtype2[,...]]
         * to
         *<0x01>type1/subtype1[<0x01>type2/subtype2[<0x01>...]]<0x01>
         ptr0 = buf;
         ptr1 = options->bad_mime_types;
         *ptr1++ = (char)0x01;
         for (i = 0; i < buflen; i++)
              if (*ptr0 != ',')
                   *ptr1++ = tolower(*ptr0++);
              else
                   *ptr1++ = (char)0x01;
                   ptr0++;
         *ptr1++ = (char)0x01;
         *ptr1 = '\0';
         options->bmt_len = ptr1 - options->bad_mime_types;
         * BAD_FILE_TYPES=["."]Ext1[,["."]Ext2[,...]]
         buf[0] = '\0';
         buflen = 0;
         mtaOptionString(channel_opts, "BAD_FILE_TYPES", 0, buf,
         &buflen, sizeof(buf));
         * Now translate the comma separated list:
         * ["."]Ext1[,["."]Ext2[,...]]
         * to
         * <0x01>ext1[<0x01>ext2[<0x01>...]]<0x01>
         ptr0 = buf;
         ptr1 = options->bad_file_types;
         *ptr1++ = (char)0x01;
         for (i = 0; i < buflen; i++)
              switch(*ptr0)
                   default : /* copy after translating to lower case */
                        *ptr1++ = tolower(*ptr0++);
                        break;
                   case '.' : /* discard */
                        break;
                   case ',' : /* end current type */
                        *ptr1++ = (char)0x01;
                        ptr0++;
                   break;
         *ptr1++ = (char)0x01;
         *ptr1 = '\0';
         options->bft_len = ptr1 - options->bad_file_types;
         * Dispose of the mta_opt_t context
         * See explanatory comment 17
         mtaOptionFinish(channel_opts);
         * And return a success
         return(MTA_OK);
    * error_report() &#12539;Report an error condition when debugging is
    * enabled.
    static void error_report(our_options_t *options, int ires,
    const char *func)
         if (options->debug)
              mtaLog("%s() returned %d; %s",
                   (func ? func : "?"), ires, mtaStrError(ires,0));
    static void error_reports(our_options_t *options, const char* errStr,
    const char *func)
         if (options->debug)
              mtaLog("%s() reported: %s",
                   (func ? func : "?"), errStr);
    * error_exit() -- Exit with an error status and error message.
    static void error_exit(int ires, const char *msg)
         mtaLog("%s%s%s", (msg ? msg : ""), (msg ? "; " : ""),
         mtaStrError(ires,0));
         exit(1);
    msgsr_clamav.cnf
    DEBUG=1
    BAD_MIME_TYPES=application/vbscript
    BAD_FILE_TYPES=bat,pif,vb,vbs,chs,exe************************************************
    broken message
    Return-path: <[email protected]>
    Received: from virusscan-daemon.apple.california.com by apple.california.com
    (Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005))
    id <[email protected]> for [email protected]; Thu,
    20 Apr 2006 07:30:13 -0700 (PDT)
    Received: from california.com ([209.159.129.16])
    by apple.california.com (Sun Java System Messaging Server 6.2-3.04 (built Jul
    15 2005)) with ESMTP id <[email protected]> for
    [email protected]; Thu, 20 Apr 2006 07:30:05 -0700 (PDT)
    Received: from [61.23.221.222] by apple.california.com (mshttpd); Thu,
    20 Apr 2006 14:30:05 +0000 (GMT)
    Content-return: allowed
    Date: Thu, 20 Apr 2006 14:30:05 +0000 (GMT)
    From: [email protected]
    Subject: Re: testing
    In-reply-to: <[email protected]>
    To: [email protected]
    Message-id: <[email protected]>
    MIME-version: 1.0
    X-Mailer: Sun Java(tm) System Messenger Express 6.2-3.04 (built Jul 15 2005)
    Content-type: multipart/alternative;
    boundary="Boundary_(ID_iOVR4MBjhWJn/mh7Ij+BUQ)"
    Content-language: en
    X-Accept-Language: en
    Priority: normal
    References: <[email protected]>
    Original-recipient: rfc822;[email protected]
    This is a multi-part message in MIME format.
    --Boundary_(ID_iOVR4MBjhWJn/mh7Ij+BUQ)
    Content-type: text/plain; charset=us-ascii
    Content-transfer-encoding: 7bit
    Content-disposition: inline
    Data is missing from here
    ----ec04832708e231d6e2f
    --Boundary_(ID_iOVR4MBjhWJn/mh7Ij+BUQ)
    Content-type: text/html; charset=us-ascii
    Content-transfer-encoding: quoted-printable
    Content-disposition: inline
    Data is missing from here
    nal Message -----=3Cbr=3EFrom=3A chales=40california=2Ecom=3Cbr=3EDate=3A=
    Thursday=2C April 20=2C 2006 11=3A19 pm=3Cbr=3ESubject=3A testing=3Cbr=3E=
    To=3A chales=40california=2Ecom=3Cbr=3E=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B 1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B=
    3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B 5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B=
    7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B 9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B=
    1=3Cbr=3E=26gt=3B 2=3Cbr=3E=26gt=3B 3=3Cbr=3E=26gt=3B 4=3Cbr=3E=26gt=3B=
    5=3Cbr=3E=26gt=3B 6=3Cbr=3E=26gt=3B 7=3Cbr=3E=26gt=3B 8=3Cbr=3E=26gt=3B=
    9=3Cbr=3E=26gt=3B 0=3Cbr=3E=26gt=3B =3Cbr=3E=26gt=3B
    ----ec04832708e231d6e2f
    --Boundary_(ID_iOVR4MBjhWJn/mh7Ij+BUQ)
    Content-type: text/x-vcard; name=chales.vcf; charset=us-ascii
    Content-transfer-encoding: base64
    Content-disposition: attachment; filename=chales.vcf
    Content-description: Card for <[email protected]>
    bA0KdGVsO3dvcms6NTEwLTI4Ny04NDUwDQp1cmw6aHR0cDovL3d3dy5jYWxpZm9ybmlh
    LmNvbS8NCm9yZzpDYWxpZm9ybmlhQ29tLCBJbmM7DQp2ZXJzaW9uOjIuMQ0KZW1haWw7
    aW50ZXJuZXQ6Y2hhbGVzQGNhbGlmb3JuaWEuY29tDQp0aXRsZTpTeXN0ZW0gQWRtaW5p
    c3RyYXRvcg0KZW5kOnZjYXJkDQo=
    ----ec04832708e231d6e2f--
    Boundary_(ID_iOVR4MBjhWJn/mh7Ij+BUQ)

    Ok, so it's not my code. Using the virus_scanner_simple.c example from SUN, if you change the decode_inspect routine to return MTA_OK for every call (which should technically just let the message pass) it has the same behavior as my program. (Not all that suprising since mine is a derivative of said program)
    That said, this now looks like a library issue. I'm using Sun Java System Messaging Server 6.2-3.04 (built Jul 15 2005) according to the SMTP prompt, and was wondering if perhaps I should apply:
    http://sunsolve.sun.com/search/document.do?assetkey=1-21-118207-42-1&searchclause=6306404
    The issue seems to be in the mtaDecodeMessage function, and occurs when the decode_inspect function is allowed to parse the message body, not just the message headers.
    The machine is a Sun Ultra 4500 running Solaris 10. Here's the banner:
    SunOS cookie 5.10 Generic_118822-23 sun4u sparc SUNW,Ultra-Enterprise
    Has anyone else had similar problems using the MTA SDK? Is there anything I'm missing here (besides the above mentioned patch) that might fix this?

  • Middleware problem -Outbound queue is stuck in SAP R/3 system with message

    Hi Middleware gurus ,
    We are stuck with a serious issue . We are trying to download Business partners from SAP R/3 4.6c system to SAP CRM 5.2 system using CRM Middleware
    Previously we did a successful Initial download of 2 Business partners from SAP R/3 to CRM . Their BP numbers in CRM are 001 and 002 . The Delta load is working fine for the both the BPs which are already downloaded
    Now , the real problem is when we are trying to download a new Business partner . When we set the Filter ( BP no 003 ) in MW adaptor object CUSTOMER_MAIN and start the Initial load again , we see that the Outbound queue is getting stuck with message “STOP” .
    There are two queues generated in SAP R/3 system with names “MASS_CRM_CUSTOME” and “R3AD_CUSTOME” . The status for both the queues is “STOP” and when go for details it mentions “sapsuck ..SAPMSSY1 “ -Message no. SR 053.
    Even we checked the txn SMW01, the Bdocs message is "Recived ( Intermediate state) " for Bdoc type BUPA_MAIN.
    We really don’t as to why the Initial load worked fine with 2 BPs  and later when want to do more BP Initial Load the Outbound queue is getting stuck
    Also , by unlocking the 2nd queue “R3AD_CUSTOME” we are able to release it , but the first queue “MASS_CRM_CUSTOME*” is stuck
    Please help us urgently
    Regards
    Dinesh and Ritvij
    Email : [email protected]
    Mobile -+91=9704933315

    Hi Praveen and other Middleware gurus,
    We checked on this . Actually the RFC is used for connecting to SAP R/3 system.
    We also raised an OSS message on this and found a reply that in transaction CRMM_BUPA_MAP, we can map the required BP . But the SAP support guy recived an error received the error:
    An RFC link is not maintained in the Middleware
    Message no. CRM_BUPA_MAPPING051
    We have set the RFC link , but still the problem continues!!!
    Please help further..
    Regards
    Dinesh and Ritvij

  • Cannot print PDF files: "/usr/lib/cups/filter/pdftops failed"

    Hi
    I have a HP Deskjet D1460 printer (crap, i know ). I'm using hplip 3.11.1 drivers and CUPS 1.4.6hplip 3.11.1.
    Today i wanted to print a pdf file, and my printer just silently refused to work, like they always do I did some log-scavenging, and found this rather long one:
    E [11/Feb/2011:12:44:36 +0100] [Job 24] Job stopped due to filter errors; please consult the error_log file for details.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] The following messages were recorded from 12:44:30 to 12:44:36
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Adding start banner page "none".
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Queued on "Deskjet_D1400" by "kaszak".
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Auto-typing file...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Request file type is application/pdf.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] File of type application/pdf queued by "kaszak".
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Adding end banner page "none".
    D [11/Feb/2011:12:44:36 +0100] [Job 24] job-sheets=none,none
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[0]="Deskjet_D1400"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[1]="24"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[2]="kaszak"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[3]="przelew.pdf"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[4]="1"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[5]="finishings=3 number-up=1 page-ranges=1 job-uuid=urn:uuid:82dc9ff4-9df7-3643-7cb5-87d5084f99f5 job-originating-host-name=localhost time-at-creation=1297424670 time-at-processing=1297424670 AP_D_InputSlot="
    D [11/Feb/2011:12:44:36 +0100] [Job 24] argv[6]="/var/spool/cups/d00024-001"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[0]="CUPS_CACHEDIR=/var/cache/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[1]="CUPS_DATADIR=/usr/share/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[2]="CUPS_DOCROOT=/usr/share/cups/doc"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[3]="CUPS_FONTPATH=/usr/share/cups/fonts"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[4]="CUPS_REQUESTROOT=/var/spool/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[5]="CUPS_SERVERBIN=/usr/lib/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[6]="CUPS_SERVERROOT=/etc/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[7]="CUPS_STATEDIR=/var/run/cups"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[8]="HOME=/var/spool/cups/tmp"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[9]="PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[10]="SERVER_ADMIN=root@localhost"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[11]="SOFTWARE=CUPS/1.4.6"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[12]="TMPDIR=/var/spool/cups/tmp"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[13]="USER=root"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[14]="CUPS_SERVER=/var/run/cups/cups.sock"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[15]="CUPS_ENCRYPTION=IfRequested"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[16]="IPP_PORT=631"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[17]="CHARSET=utf-8"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[18]="LANG=pl_PL.UTF-8"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[19]="PPD=/etc/cups/ppd/Deskjet_D1400.ppd"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[20]="RIP_MAX_CACHE=8m"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[21]="CONTENT_TYPE=application/pdf"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[22]="DEVICE_URI=hp:/usb/Deskjet_D1400_series?serial=TH7B13311X04Y2"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[23]="PRINTER_INFO="
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[24]="PRINTER_LOCATION="
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[25]="PRINTER=Deskjet_D1400"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[26]="CUPS_FILETYPE=document"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] envp[27]="FINAL_CONTENT_TYPE=printer/Deskjet_D1400"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Started filter /usr/lib/cups/filter/pdftops (PID 2793)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Started filter /usr/lib/cups/filter/foomatic-rip-hplip (PID 2794)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Started backend /usr/lib/cups/backend/hp (PID 2795)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Started filter pdftops (PID 2796)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Started filter pstops (PID 2797)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Page = 612x792; 18,36 to 594,783
    D [11/Feb/2011:12:44:36 +0100] [Job 24] slow_collate=0, slow_duplex=0, slow_order=0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Before copy_comments - %!PS-Adobe-3.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %!PS-Adobe-3.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%LanguageLevel: 3
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%DocumentSuppliedResources: (atend)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%DocumentMedia: plain 596 842 0 () ()
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%BoundingBox: 0 0 596 842
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%Pages: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] %%EndComments
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Before copy_prolog - %%BeginDefaults
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Before copy_setup - %%BeginSetup
    D [11/Feb/2011:12:44:36 +0100] [Job 24] foomatic-rip version $Revision=3.0.2.131$ running...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Parsing PPD file ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option ColorSpace
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option Resolution
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option PageSize
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option Model
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option PrintoutMode
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option Quality
    D [11/Feb/2011:12:44:36 +0100] [Job 24] *cupsFilter: "application/vnd.cups-postscript 100 foomatic-rip-hplip"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] *cupsFilter: "application/vnd.cups-pdf 0 foomatic-rip-hplip"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option PageRegion
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option ImageableArea
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option PaperDimension
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Added option Font
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Parameter Summary
    D [11/Feb/2011:12:44:36 +0100] [Job 24] -----------------
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Spooler: cups
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Printer: Deskjet_D1400
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Shell: /bin/sh
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PPD file: /etc/cups/ppd/Deskjet_D1400.ppd
    D [11/Feb/2011:12:44:36 +0100] [Job 24] ATTR file:
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Printer model: HP Deskjet d1400 Series hpijs, 3.11.1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Job title: przelew.pdf
    D [11/Feb/2011:12:44:36 +0100] [Job 24] File(s) to be printed:
    D [11/Feb/2011:12:44:36 +0100] [Job 24] <STDIN>
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] GhostScript extra search path ('GS_LIB'): /usr/share/cups/fonts
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'finishings=3'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option finishings=3.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'number-up=1'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option number-up=1.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'page-ranges=1'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option page-ranges=1.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'job-uuid=urn:uuid:82dc9ff4-9df7-3643-7cb5-87d5084f99f5'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option job-uuid=urn:uuid:82dc9ff4-9df7-3643-7cb5-87d5084f99f5.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'job-originating-host-name=localhost'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option job-originating-host-name=localhost.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'time-at-creation=1297424670'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option time-at-creation=1297424670.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'time-at-processing=1297424670'
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option time-at-processing=1297424670.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Pondering option 'AP_D_InputSlot='
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Unknown option AP_D_InputSlot=.
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] ================================================
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] File: <STDIN>
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] ================================================
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Reading PostScript input ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] --> This document is DSC-conforming!
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %RBINumCopies: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Job claims to be DSC-conforming, but "%%BeginProlog" was missing before first line with another "%%Begin..." comment (is this a TeX/LaTeX/dvips-generated PostScript file?). Assuming start of "Prolog" here.
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] -----------
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginProlog
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%EndProlog
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] -----------
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginSetup
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginFeature: *PageSize Letter
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: PageSize=Letter --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %% FoomaticRIPOptionSetting: PageSize=Letter
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: PageSize=Letter --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginFeature: *PrintoutMode Normal
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: PrintoutMode=Normal --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %% FoomaticRIPOptionSetting: PrintoutMode=Normal
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: PrintoutMode=Normal --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginFeature: *Quality FromPrintoutMode
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: Quality=FromPrintoutMode --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %% FoomaticRIPOptionSetting: Quality=@PrintoutMode
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Option: Quality=FromPrintoutMode --> Setting option
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Before page loop - %%Page: 1 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Copying page 1...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] pagew = 576.0, pagel = 747.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] bboxx = 0, bboxy = 0, bboxw = 612, bboxl = 792
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PageLeft = 18.0, PageRight = 594.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PageTop = 783.0, PageBottom = 36.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PageWidth = 612.0, PageLength = 792.0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%EndSetup
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Inserting PostScript code for CUPS' page accounting
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] -----------
    D [11/Feb/2011:12:44:36 +0100] [Job 24] New page: 1 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%BeginPageSetup
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Inserting option code into "PageSetup" section.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: %%EndPageSetup
    D [11/Feb/2011:12:44:36 +0100] [Job 24] End of page header
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Stopping search for page header options
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Found: S
    D [11/Feb/2011:12:44:36 +0100] [Job 24] --> Output goes directly to the renderer now.
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Starting renderer
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer PID kid4=2802
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer command: gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="deskjet 3320" -r300 -sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=1 -dIjsUseOutputFD -sOutputFile=- -
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Starting process 2803: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [11/Feb/2011:12:44:36 +0100] [Job 24] JCL: <job data>
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PID 2796 (pdftops) exited with no errors.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] prnt/hpijs/hpijs.cpp 650: WARNING: color pen has low ink
    D [11/Feb/2011:12:44:36 +0100] [Job 24] STATE: +marker-supply-low-warning
    D [11/Feb/2011:12:44:36 +0100] [Job 24] GPL Ghostscript 9.00: Unrecoverable error, exit code 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process 2803 ending: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer return value: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer received signal: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Possible error on renderer command line or PostScript error. Check options.", exit stat: 3
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Nie ma takiego pliku ani katalogu (2)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2802 (KID4) with signal 15
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Przerwany potok (32)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2801 (KID3) with signal 15
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: (0)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Przerwane wywołanie systemowe (4)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2802 (KID4) with signal 15
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Closing foomatic-rip.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2802 (KID4) with signal 9
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Closing foomatic-rip.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2801 (KID3) with signal 9
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Caught termination signal: Job canceled
    D [11/Feb/2011:12:44:36 +0100] [Job 24]
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Closing foomatic-rip.
    D [11/Feb/2011:12:44:36 +0100] [Job 24] prnt/backend/hp.c 839: ERROR: null print job total=0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] PID 2797 (pstops) crashed on signal 13!
    D [11/Feb/2011:12:44:36 +0100] [Job 24] End of messages
    D [11/Feb/2011:12:44:36 +0100] [Job 24] printer-state=3(idle)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] printer-state-message="/usr/lib/cups/filter/pdftops failed"
    D [11/Feb/2011:12:44:36 +0100] [Job 24] printer-state-reasons=marker-supply-low-warning
    E [11/Feb/2011:12:45:56 +0100] [Job 22] Stopping unresponsive job!
    E [11/Feb/2011:12:49:41 +0100] [Job 24] Stopping unresponsive job!
    To be honest, it looks more like a Chinese poem rather than error log. I found this part the most disturbing:
    D [11/Feb/2011:12:44:36 +0100] [Job 24] STATE: +marker-supply-low-warning
    D [11/Feb/2011:12:44:36 +0100] [Job 24] GPL Ghostscript 9.00: Unrecoverable error, exit code 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process 2803 ending: "gs -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=6..."
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer return value: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] renderer received signal: 1
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Possible error on renderer command line or PostScript error. Check options.", exit stat: 3
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Nie ma takiego pliku ani katalogu (2)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2802 (KID4) with signal 15
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Przerwany potok (32)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2801 (KID3) with signal 15
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: (0)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Process dying with "Caught termination signal: Job canceled", exit stat: 0
    D [11/Feb/2011:12:44:36 +0100] [Job 24] error: Przerwane wywołanie systemowe (4)
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Cleaning up ...
    D [11/Feb/2011:12:44:36 +0100] [Job 24] Killing process 2802 (KID4) with signal 15
    Anyone had such problems before? Just don't tell me this cursed device demands a sacrifice from freshly produced virgin paper sheets to chew on.
    Other non-pdf documents print succesfully.

    just got hit with thie same error on my canon printer, and I was told I should try reinstalling the printer (not sure if that's meant for the driver or the actual printer in CUPS, but I intend to try both...

  • Unable to delete messages from queue.

    I have a journaling rule setup to send mail to a archive appliance. I have two messages in my queue that are From Address:<>  to my recipient (my archiver's email address). The journal rule works fine since it is working for all my users mail, but I have two messages stuck in my queue complaining that they could not be categorized and an event 9213 for MSExchangeTransport every 30 minutes. 
    "A non-expirable message with the internal message ID 7996 could not be categorized. This message may be a journal report or other system message. The message will remain in the queue until administrative action is taken to resolve the error. Other messages may also have encountered this error. To further diagnose the error, use the Queue Viewer or the Mail Flow Troubleshooter."
    I have tried via the GUI and Shell to remove these two messages. The GUI gives me an error:
    Microsoft Exchange Error
    Action 'Remove (with NDR)' could not be performed on object 'RE: Test to determine if email can be delivered & Received'.
    RE: Test to determine if email can be delivered & Received
    Failed
    Error:
    The requested operation can't be performed for the object with identity MyMailServerName\Submission\7999.
    OK
    The Shell will actually not report back an error but I still have those messages in the queue. The command to see info about the message was:
    Get-Message -IncludeRecipientInfo | Where { $_.Recipients -Like "*[email protected]*" } | Format-List
    Then I tried deleting the message using the "InternetMessageID" info I gathered from this.
    Remove-Message -Filter {InternetMessageID -eq "[email protected]"} -WithNDR $false
    This prompts me for a Yes, No, etc... responce (I thought I had it this time) and gave me no error, but the message still resides in queue.
    I am at a loss. Any help?

    Correct, two messages stuck in queue and cannot remove.
    Environment is a Windows 2003 R2 w/ SP2 64bit server, Exchange 2007 SP1 with all roles, AD/DNS is also Windows 2003 R2 w/ SP2 64bit.
    This just seemed to start happening a few days ago and just with these two particular messages. I have a archive appliance from ArcMail and a journal rule setup in Exchange to journal all mail to the ArcMail appliance. This has been working and continues to work except for these two messages. 
    [PS] C:\>Get-Message -IncludeRecipientInfo | Where { $_.Recipients -Like "*[email protected]*" } | Format-List
    Identity          : CO-MAIL1\Submission\7996
    Subject           : RE: Test to determine if email can be delivered & Received
    InternetMessageId : <[email protected]>
    FromAddress       : <>
    Status            : Retry
    Size              : 29638B
    MessageSourceName : Journaling
    SourceIP          : 255.255.255.255
    SCL               : 0
    DateReceived      : 9/18/2008 1:39:34 PM
    ExpirationTime    :
    LastError         : Categorization failed. The message will be deferred and ret
                        ried because it was marked for retry if rejected.
    RetryCount        : 0
    Queue             : CO-MAIL1\Submission
    Recipients        : {[email protected]}
    IsValid           : True
    ObjectState       : Unchanged
    Identity          : CO-MAIL1\Submission\7999
    Subject           : RE: Test to determine if email can be delivered & Received
    InternetMessageId : <[email protected]>
    FromAddress       : <>
    Status            : Retry
    Size              : 29623B
    MessageSourceName : Journaling
    SourceIP          : 255.255.255.255
    SCL               : 0
    DateReceived      : 9/18/2008 1:39:34 PM
    ExpirationTime    :
    LastError         : Categorization failed. The message will be deferred and ret
                        ried because it was marked for retry if rejected.
    RetryCount        : 0
    Queue             : CO-MAIL1\Submission
    Recipients        : {[email protected]}
    IsValid           : True
    ObjectState       : Unchanged
    Domain Controller Diagnosis
    Performing initial setup:
       Done gathering initial info.
    Doing initial required tests
       Testing server: co-site\CO-DNS1
          Starting test: Connectivity
             ......................... CO-DNS1 passed test Connectivity
    Doing primary tests
       Testing server: co-site\CO-DNS1
          Starting test: Replications
             ......................... CO-DNS1 passed test Replications
          Starting test: NCSecDesc
             ......................... CO-DNS1 passed test NCSecDesc
          Starting test: NetLogons
             ......................... CO-DNS1 passed test NetLogons
          Starting test: Advertising
             ......................... CO-DNS1 passed test Advertising
          Starting test: KnowsOfRoleHolders
             ......................... CO-DNS1 passed test KnowsOfRoleHolders
          Starting test: RidManager
             ......................... CO-DNS1 passed test RidManager
          Starting test: MachineAccount
             ......................... CO-DNS1 passed test MachineAccount
          Starting test: Services
             ......................... CO-DNS1 passed test Services
          Starting test: ObjectsReplicated
             ......................... CO-DNS1 passed test ObjectsReplicated
          Starting test: frssysvol
             ......................... CO-DNS1 passed test frssysvol
          Starting test: frsevent
             ......................... CO-DNS1 passed test frsevent
          Starting test: kccevent
             ......................... CO-DNS1 passed test kccevent
          Starting test: systemlog
             ......................... CO-DNS1 passed test systemlog
          Starting test: VerifyReferences
             ......................... CO-DNS1 passed test VerifyReferences
       Running partition tests on : ForestDnsZones
          Starting test: CrossRefValidation
             ......................... ForestDnsZones passed test CrossRefValidation
          Starting test: CheckSDRefDom
             ......................... ForestDnsZones passed test CheckSDRefDom
       Running partition tests on : DomainDnsZones
          Starting test: CrossRefValidation
             ......................... DomainDnsZones passed test CrossRefValidation
          Starting test: CheckSDRefDom
             ......................... DomainDnsZones passed test CheckSDRefDom
       Running partition tests on : Schema
          Starting test: CrossRefValidation
             ......................... Schema passed test CrossRefValidation
          Starting test: CheckSDRefDom
             ......................... Schema passed test CheckSDRefDom
       Running partition tests on : Configuration
          Starting test: CrossRefValidation
             ......................... Configuration passed test CrossRefValidation
          Starting test: CheckSDRefDom
             ......................... Configuration passed test CheckSDRefDom
       Running partition tests on : lcsd
          Starting test: CrossRefValidation
             ......................... lcsd passed test CrossRefValidation
          Starting test: CheckSDRefDom
             ......................... lcsd passed test CheckSDRefDom
       Running enterprise tests on : lcsd.local
          Starting test: Intersite
             ......................... lcsd.local passed test Intersite
          Starting test: FsmoCheck
             ......................... lcsd.local passed test FsmoCheck
    [PS] C:\>Remove-Message -filter {FromAddress -eq "<>"} -withNDR $false -debug -verbose
    VERBOSE: Remove-Message : Beginning processing.
    Confirm
    Are you sure you want to perform this action?
    Removing the messages that match filter "FromAddress -eq "<>"".
    Yes  Yes to All  No  [L] No to All  Suspend  [?] Help
    (default is "Y"):Y
    VERBOSE: Remove-Message : Ending processing.
    [PS] C:\>Remove-Message -Filter {InternetMessageID -eq "[email protected]"} -WithNDR $false -debug -verbose
    VERBOSE: Remove-Message : Beginning processing.
    Confirm
    Are you sure you want to perform this action?
    Removing the messages that match filter "InternetMessageID -eq
    "[email protected]"".
    Yes  Yes to All  No  [L] No to All  Suspend  [?] Help
    (default is "Y"):Y
    VERBOSE: Remove-Message : Ending processing.
    [PS] C:\>Remove-Message -filter {FromAddress -eq ""} -withNDR $false -debug -ver
    bose
    VERBOSE: Remove-Message : Beginning processing.
    Confirm
    Are you sure you want to perform this action?
    Removing the messages that match filter "FromAddress -eq """.
    Yes  Yes to All  No  [L] No to All  Suspend  [?] Help
    (default is "Y"):Y
    VERBOSE: Remove-Message : Ending processing.
    [PS] C:\>
    Tried several filter options and all had the same result. No events in the event viewer and did not remove the stuck messages.

  • How do I set up a filter to stop relayed mail?

    How do I set up a filter to stop relayed mail?
    Unsolicited Bulk E-mail (UBE) is electronic mail sent to large numbers
    of recipients without their knowledge or consent, usually advertising commercial
    products or services. It is the electronic equivalent of paper "junk
    mail", and is commonly referred to as Spam.
    <P>UBE is usually just a nuisance, but the volume of UBE received at a
    certain site can at times become so onerous that business-critical functions
    are affected. This is especially true when UBE is used maliciously
    to produce a denial of service attack, where a mail server is inundated
    with UBE and crashes because of the load. Another common UBE problem
    is when a mail server is used as a relay for UBE, so that a particular
    server spends all its time routing e-mail that isn't destined for its
    users. Some ISPs have reported that their mail servers have been
    hard coded into certain spam programs, so that they are constantly being
    used as a relay. Not only does this slow down their mail service
    locally, but sometimes other ISP's will identify the afflicted ISP as a
    source of spam and begin to block messages, legitimate and spam alike,
    coming from that ISP. ISP's often name UBE as their number one problem,
    preventing them from providing fast, reliable service.
    <P>For a full definition of UBE see http://www.imc.org/uce-def.html
    (Unsolicited Bulk Email: Definitions and Problems).
    <P>Messaging Server 3.5 Hosting Edition supports powerful filtering capabilities
    on messages as they are received by the server. Various criteria
    can be applied to incoming messages, including testing on number of recipients,
    sender domain or IP address, messages being relayed, and more. Messages
    can then be bounced, dropped, or reviewed by an administrator before being
    delivered. Providers can filter out unwanted mail at the source or block
    a third party from using their messaging server for relaying email.
    <P><B>UBE Filters Functionality Overview</B>
    <P>The UBE filter is a plugin for Netscape Messaging Server 3.5. It works
    by examining all incoming mail before it is routed throughout the system
    (to users mailboxes or to other email servers). The UBE filter uses a set
    of rules (also known as filters) to decide what to do with each piece of
    mail. The filters are used to trap specified types of mail.
    Mail that is trapped can be rejected, forwarded to a specific mailbox (e.g.,
    the postmaster), deleted, or altered in some way. Mail that "passes"
    all the filters continues on its normal course.
    <P>Filters can be set up two ways, either using the straight forward Graphical
    User Interface (GUI) or by setting up the filters directly in the filter.cfg
    file. Generally, one would use the GUI interface for simple, one
    line filters. To set up more complicated, multi-part filters, editing
    the <I>filter.cfg</I> file directly would be faster. Both methods
    are accessed via the Messaging Server Admin tool, under Plug-ins.
    The following discussion gives some high level examples of how to set up
    simple filters using the GUI and via the <I>filter.cfg</I> file.
    For detailed information on how to set up and configure the UBE Filter
    plug-in, see chapter 5 of the online help, or http://home.netscape.com/eng/Messaging/guide35/ch5.htm#Controlling
    unsolicited bulk email (UBE).
    <P><B>Setting Up UBE Filters with the GUI</B>
    <P>The following screen shot shows a simple UBE filter being set up using
    the UBE GUI. What is being set up is a filter to check all incoming
    messages to see if they come from a domain that has been a regular source
    of UBE. In this case, the name of the offending domain is "spammer.com".
    So, each message that comes in has its "From" field checked to see if
    it is from "spammer.com". If it is, the action is REJECT, meaning
    the message is bounced back to the sender, with the appended message "I
    don't accept mail from spammer.com".
    <P>
    <BR>
    <P>Any field in the message can be examined, with some of the most popular
    including the Subject, To, and Cc fields. Any regular expression
    can be placed into the Value field, thus allowing the filter to check for
    various conditions, including containment of a particular phrase (e.g.
    Subject includes "make money"), or number of recipients (e.g., if greater
    than 100, REJECT). For more information on how to write regular expressions,
    see http://home.netscape.com/eng/Messaging/guide35/ch5.htm#Controlling
    unsolicited bulk email (UBE)
    <P>There are a number of actions that can be taken on a trapped message.
    The most common are forwarding to a "watchdog" account such as the postmaster,
    rejection, and deletion. But, in addition, programs such as virus
    checking can be run on a message to trap infected messages.
    <P><B>Setting Up UBE Filters by editing the <I>filter.cfg</I> file</B>
    <P>In the above example, the filter that was set up was converted to a
    short filter script that looked as follows:
    <P>Channel-From ".*@spammer.com" REJECT
    "I don't accept mail from spammer.com"
    <P>This can also be directly entered into the <I>filter.cfg</I> file by
    choosing the option "Edit Config File" from the UBE Page. This becomes
    interesting for more complicated filters that require more than one filter
    line. The following example shows a set of filters that were set
    up to check for various conditions. For example, the fifth
    and sixth line down is a filter that checks messages for viruses.
    <P>
    <BR>
    <P><B>Using the UBE Filter for Anti-Relay</B>
    <BR>
    <P>One of the most requested needs of the new UBE filters supported in
    Messaging Server 3.5 is to provide "anti-relay", i.e., to stop UBE which
    is from an outside domain and destined for another outside domain.
    In these cases, the mail is usually UBE and is relaying to hide the source
    of the original spammer.
    <P>There are two possible scenarios for anti-relay. One is where
    there is a separate machine outside the firewall that checks for e-mail
    for its domain. The other scenario is when there is only one machine
    handling both internal and external traffic.
    <P><I>Scenario One: Separate machines used for internal and external
    mail</I>
    <P>Outside of the firewall are mail servers that handle all incoming mail
    from the internet. Internal users connect to mail servers inside
    of the fire wall. The scenario looks like this:
    <BR>
    <P>What we want to allow is users 1 and 2 (U1 and U2) to send mail anywhere
    but X1 and X2 should only be allowed to send mail to our servers.
    <P>Solution:
    <P>On the External Mail Server create a filter script that checks the Channel-to
    header for domains that are internal to us. Allow these through and
    reject all other mail. E.g., the filters would look as follows:
    <BR>
    <UL># if the mail is bound for domain1 or domain2 then exit the script
    (and allow the mail to continue)
    <BR>Channel-To "domain1.com" EXIT
    <BR>Channel-To "domain2.com" EXIT
    <BR># otherwise reject it outright ($ANY means any header and .* means
    it has any text)
    <BR>$ANY ".*"
    REJECT "This machine only accepts mail bound for domain1.com or domain2.com"</UL>
    We don't need to do anything on the internal server since only our users
    can get to it (because of the firewall) and we want to allow them to send
    and receive any and all mail.
    <BR>
    <P><I>Scenario 2: Single machine used for internal and external mail</I>
    <P>In this scenario the same machine is used for both internal and external
    connections. The problem we face here is that we need to allow the
    local users to send mail outside our domains but not allow external users
    to do the same. Note: This set up is not generally recommended, since it
    makes the Messaging Server open to external attacks.
    <BR>
    <P>Here, we want to allow U1, U2 and U3 to send anywhere and X1 and X2
    to send to domain1 or domain2 only.
    <P>Solution:
    <P>The solution in this case is to put the same script as scenario 1 on
    the server but pre-pend it with lines that check for a connection from
    the internal domains. If the connection is from our users it must
    be from certain IP addresses, say 128.128.128.* or 128.128.129.*, so we
    look for that. If it's not from one of these two IP addresses, then
    it must be from outside and we apply the same logic as in scenario 1.
    <BR>
    <UL>#if the connection is from our internal domains then exit the script
    (and allow the mail to continue)
    <BR>Host-From "128\.128\.128\." EXIT
    <BR>Host-From "128\.128\.129\." EXIT
    <BR># if the mail is bound for domain1 or domain2 then exit the script
    (and allow the mail to continue)
    <BR>Channel-To "domain1.com" EXIT
    <BR>Channel-To "domain2.com" EXIT
    <BR># otherwise reject it outright ($ANY means any header and .* means
    has any text)
    <BR>$ANY ".*" REJECT "This machine only accepts mail bound for domain1.com
    or domain2.com"</UL>

    I agree anti-relay can be using UBE feature. However, there is serious problem in reject the spam mail. My nms is using UBE feature to stop spam mail. According to the work flow of the UBE, the mail is received by nms completely and UBE is going to invesgate the mail address. Although UBE can stop the spam mail, the spam mail have a trouble in returning the mail to the sender. The reason is the sender address is usually not existed in the world. That will cause a lot of mail waiting in the mail queue.
    In my experience, do not use UBE for anti-relay.

  • Data acquisition loop with queue

    What I would like to do is have a data acquisition loop that samples a load cell at 500Hz and have another loop that runs much slower to run a state machine and display some data in real time.  The reason I want to sample the load cell so fast is to filter out some noise.  Making producer/consumer loops with a queue kind of makes sense but I don't really care about all of the samples, I just want to be able to read a real time filtered signal at certain times.  I looked at having just two parallel loops, one to acquire the data and the other to run a test and retrieve a real-time signal when I want but not sure how to pass data between the loops without using a queue.  You can do it with local variables but you are at risk of a race condition.  I hope this make sense.  I am sure this is a simple problem I just don't know what direction to go.  Thanks

    Good Evening secr1973,
    It sounds like you are on the right track.  You already know about the producer/consumer architecture; this is almost always the first step to the separation that I think you are after.
    The step that I think you are missing is a Case Structure around the enqueue element VI.  You likely have some event or specific pattern that you are looking for in the input signal.  You can have the output from this algorithm (likely a boolean) determine which case of the Case Structure to execute (Case 1: enqueue the element or Case 2: Do not enqueue the element).
    This, of course, leads to processing being done in the producer loop, which is quite the opposite of what you are trying to accomplish with the producer/consumer architecture.  You will have to decide if your processing is very simple or more complicated.
    If it is easy/fast, you can likely get away with doing this processing in the producer loop.  My guess is that your program falls under the category of do-it-all-in-the-producer loop because you are only acquiring at 500 Hz.
    If the application requires faster acquisition rates or if the logic is going to require some processing, you may want to implement a double layer producer/consumer architecture.  In this setup, you would pass all of the data from the DAQ producer to a second loop (using queue #1) that determines what to do with the data (to enqueue or not to enqueue...) and, if appropriate, write to a queue (queue #2) that the third loop can read.  The third loop would be where your state machine executes.
    If you have a quad core machine, each of these steps will execute on its own core.  If not, you will have a little more thread swapping; not a huge concern in most cases.  Here, we get into the art of programming more than the science.
    In any event, I think you will be OK with a little processing for the enqueue or not algorithm in the producer loop.
    Regards,
    Charlie Piazza
    Staff Product Support Engineer, RF
    National Instruments

Maybe you are looking for