Sybase NNTP forums - End Of Life (EOL)

The NNTP forums from Sybase - forums.sybase.com - are now closed.

All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).

Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.

Creating a QAnywhere message from within a stored procedure

3 posts in QAnywhere Last posting was on 2005-10-09 03:09:05.0Z
Peter Brooks Posted on 2005-10-01 02:17:26.0Z
From: Peter Brooks <admin@Infobase.com.au>
Newsgroups: ianywhere.public.sqlanywhere.qanywhere
Subject: Creating a QAnywhere message from within a stored procedure
Message-ID: <bprrj1pnmsgjm3lh5moa2ahlav3h407vvj@4ax.com>
X-Newsreader: Forte Agent 1.93/32.576 English (American)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: mail.infobase.com.au
X-Original-NNTP-Posting-Host: mail.infobase.com.au
Date: 30 Sep 2005 19:17:26 -0700
X-Trace: forums-1-dub 1128133046 203.185.211.78 (30 Sep 2005 19:17:26 -0700)
X-Original-Trace: 30 Sep 2005 19:17:26 -0700, mail.infobase.com.au
Lines: 12
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.sqlanywhere.qanywhere:143
Article PK: 10450

We are existing users of SQLAnywhere and mobilink and are currently
evaluating the benefits of using the QAnywhere product. We are
interested in creating a "sync" ability between a remote database and
a consolidated database where the data is transferred between the
remote and consolidated via store and forward concept. We have
"dabbled" with MSMQ but feel that QAnywhere could provide a better
solution. We could use mobilink for this but do not like the fact that
we need to rely on the remote database log files.

So, my question is, can we create a QAnywhere message from within a
stored procedure and, is so, are there any examples of this. We would
probably call the stored procedure from within a trigger.


Andy Quick Posted on 2005-10-05 14:06:38.0Z
From: "Andy Quick" <andy.quick@sybase.com>
Newsgroups: ianywhere.public.sqlanywhere.qanywhere
References: <bprrj1pnmsgjm3lh5moa2ahlav3h407vvj@4ax.com>
Subject: Re: Creating a QAnywhere message from within a stored procedure
Lines: 884
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1506
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1506
X-Original-NNTP-Posting-Host: aquick-xp.sybase.com
Message-ID: <4343dd59@forums-2-dub>
X-Original-Trace: 5 Oct 2005 07:04:09 -0700, aquick-xp.sybase.com
X-Original-NNTP-Posting-Host: forums-2-dub.sybase.com
X-Original-Trace: 5 Oct 2005 07:04:10 -0700, forums-2-dub.sybase.com
NNTP-Posting-Host: forums-master.sybase.com
X-Original-NNTP-Posting-Host: forums-master.sybase.com
Date: 5 Oct 2005 07:06:38 -0700
X-Trace: forums-1-dub 1128521198 10.22.108.75 (5 Oct 2005 07:06:38 -0700)
X-Original-Trace: 5 Oct 2005 07:06:38 -0700, forums-master.sybase.com
X-Authenticated-User: ngsysop
Path: forums-1-dub!forums-2-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.sqlanywhere.qanywhere:146
Article PK: 10451

QAnywhere is supported within SQL. This feature was added after the SQL
Anywhere 9.0.2 documentation was done, but it is available in the latest
9.0.2 EBF. It will be officially documented in the SQL Anywhere 10.0.0
product. In the mean time, I have included below some documentation on this
feature:

Andy Quick
iAnywhere Solutions Engineering

<documentation>
Accessing QAnywhere messaging from database logic

Summary: Stored procedures for giving access to QAnywhere messaging from SQL

Description:

With the addition of several stored procedures, most of QAnywhere messaging
supported by the .NET and C++ QAnywhere libraries are
now available from SQL. This includes creating messages, setting/getting
message properties and content, sending/receiving
messages, triggering message synchronization, and setting/getting message
store properties.

Transactions

QAnywhere-SQL messaging co-exists with user transactions. Hence, committing
a transaction also commits all the QAnywhere sends and
receives made on that connection.

Interoperability with other QAnywhere libraries and JMS

Messages generated by QAnywhere-SQL can be received by other QAnywhere .NET
and C++ clients (links to .NET and C++ client library
user guides), QAnywhere-SQL clients, and even Java Message Service (JMS)
clients if you have configured a JMS connector on your
server (link to configuring JMS connectors). Similarly, QAnywhere-SQL can
be used to receive messages generated by QAnywhere .NET,
C++, QAnywhere-SQL clients, and even JMS clients.

SQL Example:

Initializing QAnywhere, sending a message, finalizing QAnywhere

call ml_qa_init();
create variable msgid varchar(128);
set msgid = ml_qa_createmessage();
call ml_qa_settextcontent( msgid, 'someContent' );
call ml_qa_putmessage( msgid, 'someStoreID\addrb' );
commit;
call ml_qa_fini();

SQL Example:

A trigger on an inventory table that sends a message when the inventory for
an item follows below a threshold

create trigger inventory_trigger after update on inventory
referencing old as oldinv new as newinv
for each row
begin
declare msgid varchar(128);
if oldinv.quantity > newinv.quantity and newinv.quantity < 10 then
-- Create the message
set msgid = ml_qa_createmessage();
-- Set the message content
call ml_qa_settextcontent( msgid,
'Inventory of item ' || newinv.itemname
|| ' has fallen to only ' || newinv.quantity );
-- Make the message high priority
call ml_qa_setpriority( msgid, 9 );
-- Set a message subject
call ml_qa_ setstringproperty( msgid,
'tm_Subject', 'Inventory low!' );
-- Send the message to the inventoryManager queue
call ml_qa_putmessage( msgid,
'inventoryManager' );
end if;
end

The message will only be sent once the transaction invoking the trigger is
committed. Similarly, if the transaction is rolled back,
the message will not be sent.

Permissions

Database users, other than those with DBA, do not automatically have
permission to execute the QAnywhere stored procedures. To give
permission to a user, the procedure dbo.ml_qa_grant_messaging_permissions
must be called. For example, to give the user "someuser"
permission, a user with DBA must execute the SQL

call dbo.ml_qa_grant_messaging_permissions( 'someuser' )

This procedure grants execute on the various QAnywhere stored procedures to
the given user. It also adds the user to the
ml_qa_message_group.


Here is a table that summarizes the QAnywhere stored procedures and
functions:

Stored Proc Name Description

ml_qa_createmessage Returns a message id of a new message
ml_qa_getaddress Returns the message address
ml_qa_getbooleanproperty Returns the message property value as SQL type bit
ml_qa_getbyteproperty Returns the message property value as SQL type tinyint
ml_qa_getbinarycontent Returns the message binary content as SQL type long
binary
ml_qa_getcontenttype Returns the type of the content: text or binary
ml_qa_getdoubleproperty Returns the message property value as SQL type
double precision
ml_qa_getexpiration Returns the message expiration time as a SQL timestamp
ml_qa_getfloatproperty Returns the message property value as SQL type float
ml_qa_getinreplytoid Returns the message in-reply-to-id
ml_qa_getintproperty Returns the message property value as SQL type integer
ml_qa_getlongproperty Returns the message property value as SQL type bigint
ml_qa_getmessage Returns a message id of a message queued for a given
address, blocking until a message is available
ml_qa_getmessagenowait Returns a message id of a message queued for a given
address or null if no message is currently queued
ml_qa_getmessagetimeout Returns a message id of a message queued for a given
address or null if no message is queued by the given
timeout period
ml_qa_getpriority Returns the message priority
ml_qa_getpropertynames Creates a result set over the property names of the
message
ml_qa_getredelivered Returns a bit indicating whether the message was
previously received without being acknowledged.
ml_qa_getreplytoaddress Returns the message reply-to address
ml_qa_getshortproperty Returns the message property value as SQL type
smallint
ml_qa_getstoreproperty Return the store property
ml_qa_getstringproperty Returns the message property value as SQL type long
varchar
ml_qa_gettextcontent Returns the message text content as SQL type long
varchar
ml_qa_gettimestamp Returns the timestamp marking the time the message was
sent
ml_qa_putmessage Sends the message to a given address
ml_qa_setbooleanproperty Sets the message property to a boolean value
ml_qa_setbinarycontent Sets the binary content of the message
ml_qa_setbyteproperty Sets the message property to a byte value
ml_qa_setdoubleproperty Sets the message property to a double value
ml_qa_setexpiration Sets the message expiration
ml_qa_setfloatproperty Sets the message property to a float value
ml_qa_setinreplytoid Sets the in-reply-to-id of the message
ml_qa_setintproperty Sets the message property to an int value
ml_qa_setlongproperty Sets the message property to a long value
ml_qa_setpriority Sets the priority of the message
ml_qa_setreplytoaddress Sets the reply-to address of the message
ml_qa_setshortproperty Sets the message property to a short value
ml_qa_setstoreproperty Sets the store property
ml_qa_setstringproperty Sets the message property to a UTF8 value
ml_qa_settextcontent Sets the UTF8 text content of the message
ml_qa_triggersendreceive Manually triggers a message synchronization with
the QAnywhere server


ml_qa_getmessagetimeout

Function

Waits up to the timeout period to return the message id of the next message
queued for the given address.

Parameters
Item Description Remarks
1 address VARCHAR(128)
2 timeout in milliseconds INTEGER
return value message ID VARCHAR(128)

Description

Use this function to get the next message queued for the address. Returns
null if there is no queued message for this address by
end of the timeout period. See also ml_qa_getmessage and
ml_qa_getmessagenowait.

Affect of Transactions on Messages

The message corresponding to the returned message ID is not considered
received until the current transaction is committed. Once
the receive is committed, the message cannot be received again by this or
any other QAnywhere API. Similarly, a rollback of the
current transaction will mean that the message is not received.
Subsequently, a call to one of the ml_qa_getmessage functions may
return the same message ID.

Mesage Data

The received message properties and content can be read by the various
ml_qa_get*( messageid ) functions up until a commit on the
current transaction is executed. Once a commit is executed on the current
transaction, the message data is no longer readable.
Hence, before committing, any data needed from the message should be stored
as tabular data or in SQL variables.

ml_qa_getmessage

Function

Returns the message id of a message queued for the given address, blocking
until one is queued.

Parameters
Item Description Remarks
1 address VARCHAR(128)
return value message ID VARCHAR(128)

Description

Use this function to get the next message queued for the address. This
function will block until a message is queued. To avoid
blocking to get a message, see ml_qa_getmessagenowait and
ml_qa_getmessagetimeout.

(below same as description in ml_qa_getmessagetimeout)

Affect of Transactions on Messages

The message corresponding to the returned message ID is not considered
received until the current transaction is committed. Once
the receive is committed, the message cannot be received again by this or
any other QAnywhere API. Similarly, a rollback of the
current transaction will mean that the message is not received.
Subsequently, a call to one of the ml_qa_getmessage functions may
return the same message ID.

Mesage Data

The received message properties and content can be read by the various
ml_qa_get*( messageid ) functions up until a commit on the
current transaction is executed. Once a commit is executed on the current
transaction, the message data is no longer readable.
Hence, before committing, any data needed from the message should be stored
as tabular data or in SQL variables.

ml_qa_getmessagenowait

Function

Returns the message id of a message queued for the given address, or null if
no message is currently queued.

Parameters
Item Description Remarks
1 address VARCHAR(128)
return value message ID VARCHAR(128)

Description

Use this function to get the next message queued for the address. Returns
null if there is no queued message for this address. To
block until a message is available see ml_qa_getmessage and
ml_qa_getmessagetimeout.

(below same as description in ml_qa_getmessagetimeout)

Affect of Transactions on Messages

The message corresponding to the returned message ID is not considered
received until the current transaction is committed. Once
the receive is committed, the message cannot be received again by this or
any other QAnywhere API. Similarly, a rollback of the
current transaction will mean that the message is not received.
Subsequently, a call to one of the ml_qa_getmessage functions may
return the same message ID.

Mesage Data

The received message properties and content can be read by the various
ml_qa_get*( messageid ) functions up until a commit or
rollback on the current transaction is executed. Once a commit or rollback
is executed on the current transaction, the message data
is no longer readable. Hence, before committing, any data needed from the
message should be stored as tabular data or in SQL
variables.

ml_qa_triggersendreceive

Function

Triggers a synchronization of messages with the QAnywhere server

Parameters

None

Description

Normally, message synchronization will is handled by the QAnywhere Agent.
However, if the synchronization policy is "ondemand",
then it is the application's responsibility to trigger the synchronization
of messages using this stored procedure. Note that this
triggering is covered by the current transaction. That is, the trigger will
not take effect until the current transaction is
committed.



Receiving Messages Asynchronously

Although messages can be received synchronously on a connection using
ml_qa_getmessage, it is often desirable to receive messages
asynchronously. You can create a stored procedure that will be called when
a message has been queued on a particular address. This
procedure name must follow a naming convention: ml_qa_listener_<address>
where address is the message address. When this procedure
is created anytime a message is queued on the given address this procedure
will be called.

ml_qa_listener_<address>

Function

Use this stored procedure to receive messages asynchronously

Parameters
Item Description Remarks
1 message ID VARCHAR(128)

Description

This procedure will be called from a separate connection. As long as a SQL
error does not occur while this procedure is executing,
the message is automatically acknowledged and committed. Do not acknowledge
or commit or rollback within the procedure.

Example

This procedure will be called whenever a message is queue on the address
"execsql". The procedure assumes the content of the
message is a SQL statement that it can execute against the current database.

create procedure ml_qa_listener_execsql( in msgid varchar(128) )
begin
declare execstr long varchar;
set execstr = ml_qa_gettextcontent( msgid );
execute immediate execstr;
end


ml_qa_createmessage

Function

Returns the message id of a new message.

Parameters
Item Description Remarks
return value message ID VARCHAR(128)

Description

Use this function to create a message. Once created, you can associate
content, properties and headers with this message using any
of the ml_qa_set... stored procedures, and send the message.

ml_qa_getbooleanproperty

Function

Returns the message property as a SQL bit type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value BIT

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getbyteproperty

Function

Returns the message property as a SQL tinyint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value TINYINT

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getbinarycontent

Function

Returns the message content of a binary message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value binary content LONG BINARY

Description

If the message has text content rather than binary content, this function
will return null.

ml_qa_getcontentclass

Function

Returns the content class of the message

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value content class INTEGER

Description

A return value of 1 indicates that the message content is binary and should
be read using the function ml_qa_getbinarycontent. A
return value of 2 indicates that the message content is text and should be
read using the function ml_qa_gettextcontent.

ml_qa_getshortproperty

Function

Returns the message property as a SQL smallint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value SMALLINT

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getintproperty

Function

Returns the message property as a SQL integer type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value INTEGER

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getlongproperty

Function

Returns the message property as a SQL bigint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value BIGINT

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getfloatproperty

Function

Returns the message property as a SQL float type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value FLOAT

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getdoubleproperty

Function

Returns the message property as a SQL double precision type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value DOUBLE

Description

If the message property value is out of range, then a SQL error with
SQLSTATE 22003 will occur.

ml_qa_getstringproperty

Function

Returns the message property as a SQL long varchar type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
return value property value LONG VARCHAR

Description

No matter what is the underlying message property type, it can always be
read as a string.

ml_qa_getmessage

Function

Returns the message id of a message queued for the given address.

Parameters
Item Description Remarks
1 address VARCHAR(128)
return value message ID VARCHAR(128)

Description

Use this function to get the next message queued for the address. Returns
null if there is no queued message for this address.

ml_qa_getpriority

Function

Returns the priority of the message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value priority INTEGER

ml_qa_getaddress

Function

Returns the address of the message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value address VARCHAR(128)

ml_qa_getexpiration

Function

Returns the expiration time of the message

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value expiration TIMESTAMP

ml_qa_gettextcontent

Function

Returns the message content of a text message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value text content LONG VARCHAR

Description

If the message has binary content rather than text content, this function
will return null.

ml_qa_gettimestamp

Function

Returns the creation time of the message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value message creation time TIMESTAMP

ml_qa_getreplytoaddress

Function

Returns the reply address of the message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value reply address VARCHAR(128)

ml_qa_getinreplytoid

Function

Returns the in-reply-to-id of the message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value in-reply-to-id VARCHAR(128)

ml_qa_getredelivered

Function

Returns a bit indicating whether this message has previously been received.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
return value redelivered BIT

ml_qa_getpropertynames

Function

Use this stored procedure to open a result set over the parameter names of
message.

Parameters

Item Description Remarks
1 message ID VARCHAR(128)

Description

The message ID parameter must be that of a message received using
ml_qa_getmessage but not yet acknowledged using ml_qa_acknowlege.
The result set consists of a single varchar(128) column, each row containing
the name of a message property. QAnywhere reserved
property names (those beginning with the prefix "ias_" or "QA") are
returned.

Example

begin
declare prop_name_cursor cursor for
call ml_qa_getpropertynames( msgid );
declare msgid varchar(128);
declare name varchar(128);

set msgid = ml_qa_getmessage( 'someAddress' );
open prop_name_cursor;
lp: loop
fetch next prop_name_cursor into name;
if sqlcode <> 0 then leave lp end if;
...
end loop;
close prop_name_cursor;
end

ml_qa_getstoreproperty

Function

Returns the store property.

Parameters
Item Description Remarks
1 property name VARCHAR(128)
return value property value LONG VARCHAR

Description

Store properties are readable from every connection to this message store.

ml_qa_putmessage

Function

Sends a message.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 address VARCHAR(128)

Description

The message id you specify must have been previously created using
ml_qa_createmessage. Only content, properties and headers
associated with the message id before the call to ml_qa_putmessage are sent
with the message. Any added after the ml_qa_putmessage
are ignored.

Note that a commit is required before the message is actually queued for
sending.

ml_qa_setbooleanproperty

Function

Sets the message property from a SQL bit type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value BIT

ml_qa_setbinarycontent

Function

Sets the binary content of the message

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 content LONG BINARY

ml_qa_setbyteproperty

Function

Sets the message property from a SQL tinyint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value TINYINT

ml_qa_setshortproperty

Function

Sets the message property from a SQL smallint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value SMALLINT

ml_qa_setintproperty

Function

Sets the message property from a SQL integer type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value INTEGER

ml_qa_setlongproperty

Function

Sets the message property from a SQL bigint type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value BIGINT

ml_qa_setfloatproperty

Function

Sets the message property from a SQL float type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value FLOAT

ml_qa_setdoubleproperty

Function

Sets the message property from a SQL double precision type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value DOUBLE

ml_qa_setstoreproperty

Function

Sets a store property.

Parameters
Item Description Remarks
1 property name VARCHAR(128)
2 property value SMALLINT

Description

Store properties are readable from every connection to this message store.
The values are synchronized up to the server, as well,
where they can be used in transmission rules.

ml_qa_setstringproperty

Function

Sets the message property from a SQL long varchar type.

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 property name VARCHAR(128)
3 property value LONG VARCHAR

ml_qa_settextcontent

Function

Sets the text content of the message

Parameters
Item Description Remarks
1 message ID VARCHAR(128)
2 content LONG VARCHAR

ml_qa_triggersendreceive

Function

Triggers a synchronization of messages with the QAnywhere server

Parameters

None

Description

Normally, message synchronization will is handled by the QAnywhere Agent.
However, if the synchronization policy is "ondemand",
then it is the application's responsibility to trigger the synchronization
of messages using this stored procedure.

</documentation>

"Peter Brooks" <admin@Infobase.com.au> wrote in message
news:bprrj1pnmsgjm3lh5moa2ahlav3h407vvj@4ax.com...
> We are existing users of SQLAnywhere and mobilink and are currently
> evaluating the benefits of using the QAnywhere product. We are
> interested in creating a "sync" ability between a remote database and
> a consolidated database where the data is transferred between the
> remote and consolidated via store and forward concept. We have
> "dabbled" with MSMQ but feel that QAnywhere could provide a better
> solution. We could use mobilink for this but do not like the fact that
> we need to rely on the remote database log files.
>
> So, my question is, can we create a QAnywhere message from within a
> stored procedure and, is so, are there any examples of this. We would
> probably call the stored procedure from within a trigger.


Peter Brooks Posted on 2005-10-09 03:09:05.0Z
From: Peter Brooks <admin@Infobase.com.au>
Newsgroups: ianywhere.public.sqlanywhere.qanywhere
Subject: Re: Creating a QAnywhere message from within a stored procedure
Message-ID: <e42hk19ggcmo4gp31qscn3mggjd2tj1ngc@4ax.com>
References: <bprrj1pnmsgjm3lh5moa2ahlav3h407vvj@4ax.com> <4343dd59@forums-2-dub>
X-Newsreader: Forte Agent 1.93/32.576 English (American)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: dsl-202-173-148-208.qld.westnet.com.au
X-Original-NNTP-Posting-Host: dsl-202-173-148-208.qld.westnet.com.au
Date: 8 Oct 2005 20:09:05 -0700
X-Trace: forums-1-dub 1128827345 202.173.148.208 (8 Oct 2005 20:09:05 -0700)
X-Original-Trace: 8 Oct 2005 20:09:05 -0700, dsl-202-173-148-208.qld.westnet.com.au
Lines: 37
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.sqlanywhere.qanywhere:147
Article PK: 10455

Hi Andy,

Thanks for response and documentation details on the new
functionality. I will experiment with these new features.

Peter Brooks

On 5 Oct 2005 07:06:38 -0700, "Andy Quick" <andy.quick@sybase.com>

wrote:

>QAnywhere is supported within SQL. This feature was added after the SQL
>Anywhere 9.0.2 documentation was done, but it is available in the latest
>9.0.2 EBF. It will be officially documented in the SQL Anywhere 10.0.0
>product. In the mean time, I have included below some documentation on this
>feature:
>
>Andy Quick
>iAnywhere Solutions Engineering
>

>"Peter Brooks" <admin@Infobase.com.au> wrote in message
>news:bprrj1pnmsgjm3lh5moa2ahlav3h407vvj@4ax.com...
>> We are existing users of SQLAnywhere and mobilink and are currently
>> evaluating the benefits of using the QAnywhere product. We are
>> interested in creating a "sync" ability between a remote database and
>> a consolidated database where the data is transferred between the
>> remote and consolidated via store and forward concept. We have
>> "dabbled" with MSMQ but feel that QAnywhere could provide a better
>> solution. We could use mobilink for this but do not like the fact that
>> we need to rely on the remote database log files.
>>
>> So, my question is, can we create a QAnywhere message from within a
>> stored procedure and, is so, are there any examples of this. We would
>> probably call the stored procedure from within a trigger.
>