[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] C++ Client SQL92 filter



Hi,

I'm using the C++ API. For the subscription my code is :

void XmlBlasterClient::subscribe(char * key,I_Callback* callback, char * filter)
{
  SubscribeKey subKey(global_);
  subKey.setOid(key);
   SubscribeQos subQos(global_);
 
    if(filter!=NULL)
        {    AccessFilterQos af(global_, "Sql92Filter","1.0", filter);
            subQos.addAccessFilter(af);
        }

        subQos.setWantLocal(false);
       
         SubscribeReturnQos subRetQos = con.subscribe(subKey, subQos,callback);
}

then i call it with -> Subscribe("SimpleChat",new ChatCallback(),"canal='teste2'");

For publishing i have this: (MsgHeaderProperties simply contains QosData::ClientPropertyMap clientPropertyMap;

void XmlBlasterClient::Publish(const char * key,const char * content,MsgHeaderProperties * props)
{
         PublishQos publishQos(global_);
         PublishKey publishKey(global_);
         publishKey.setOid(key);
        
         // Let's add the properties
         if(props!=NULL)
         {
             publishQos.setClientProperties(props->getProperties());
         }
        
         MessageUnit msgUnit(publishKey, string(content), publishQos);
       
         PublishReturnQos pubRetQos = con.publish(msgUnit);
}

Then in my app i having this :
props->add("canal","teste2");
Publish("SimpleChat",msg.c_str(),props);

The subscription message looks like :

 <key oid='SimpleChat' contentMime='text/plain'></key> and qos:
 <qos>
  <erase forceDestroy='false'/>
  <local>false</local>
  <filter type='Sql92Filter'>
   <![CDATA[canal='teste2']]>
  </filter>
 </qos>

And the publish :

 <MessageUnit>
  <key oid='SimpleChat'/>
  <content>hello</content>
  <qos>
   <state id='OK'/>
   <sender>client/nfgs</sender>
   <route>
   </route>
   <clientProperty name='canal' type='String'>teste2</clientProperty>
  </qos>
 </MessageUnit>


At first glance i think this should work right ? So any help regarding this subject is welcome ..

Regards,

    Nelson Silva






Marcel Ruff wrote:

> Nelson Silva wrote:
>
>> Hi,
>>
>> I've been cracking my head over this for a while but to no avail... :
>>
>> [25/Jul/2005 20:42:17 WARN  XmlBlaster.SOCKET.tcpListener-nfgs RequestBroker-/node/xmlBlaster_127_0_0_1_3412] Generating dead message 'callback:/node/xmlBlaster_127_0_0_1_3412/client/nfgs/-3/NORM/1122320537735000000/SimpleChat' from publisher=/node/xmlBlaster_127_0_0_1_3412/client/nfgs/-2 because delivery with queue 'null' failed:
>>
>> Mime access filter 'Sql92Filter' for message 'SimpleChat/2005-07-25 20:42:17.707' from sender '/node/xmlBlaster_127_0_0_1_3412/client/nfgs/-2' to subscriber '/node/xmlBlaster_127_0_0_1_3412/client/nfgs/-3' threw an exception, we don't deliver the message to the subscriber: errorCode=user.illegalArgument message=#exported You have invoked a server method with illegal arguments. -> http://www.xmlblaster.org/xmlBlaster/doc/requirements/admin.errorcodes.listing.html#user.illegalArgument
>>
>> What's happening here ? I have the same thing working in JAVA without problems. I even compiled the C++ client library with SQLite support thinking it might solve it...
>>
> Hi Silva,
>
> could you please send me the published message and the
> sql query of the subscriber?
> Which version do you use, on which OS?
>
> thanks
> Marcel
>