Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Http transactional messages doesn't work

70 views
Skip to first unread message

Christian Allard

unread,
Aug 4, 2004, 3:39:04 PM8/4/04
to
I'm trying to send messages in a transactional queue/workgroup mode/direct http. The message ends up in the deadxact queue without being sent to the recipient. The outgiong queue is "inactive", I can see the messages the moment I send them. The queue goes to waiting for connection and the the messges are cleared into the deadxact queue.

I send my messages on a WinXP box and try to receive it from a win2K3 Server.

The formatname in the outgoing queue looks like: DIRECT=HTTP://90.0.0.23/MSMQ/PRIVATE$/test

The code I use to send the message:
Dim msgQ As New System.Messaging.MessageQueue(Me.serversFormatName)
Dim myMessage As New System.Messaging.Message

'in order to keep the message written on disk all the time
'a bit slower but safer
msgQ.DefaultPropertiesToSend.Recoverable = True

msgQ.Formatter = Me.customFormater
myMessage.Formatter = Me.customFormater

With myMessage
.UseJournalQueue = True
.UseTracing = True
.UseDeadLetterQueue = True
.Body = Me.Message.ToString()
.Label = Me.Message.Label
.Formatter = Me.customFormater
.AppSpecific = Me.AppId
.TimeToReachQueue = New TimeSpan(Me.TimeToReachQueue, 0, 0, 0)
.TimeToBeReceived = New TimeSpan(Me.TimeToBeReceived, 0, 0, 0)
End With

msgQ.Send(myMessage, Me.Message.Label, Messaging.MessageQueueTransactionType.Single)
msgQ.Close()

Can someone help me with this issue?

Frank Boyne

unread,
Aug 4, 2004, 6:52:00 PM8/4/04
to
"Christian Allard"
<Christi...@discussions.microsoft.com> wrote in
message
news:B04DB6E2-25FE-42AB...@microsoft.com...

> The message ends up in the deadxact
> queue without being sent to the recipient.

If you double click on the message in the Transactional
dead-letter messages queue, what is the class value on the
General tab?

I cut and pasted your code into a test program and the
code works for me. I did change all customFormatter
references to new XmlMessageFormatter and used hard coded
values for other me.xxx accesses but that shouldn't have
had a significant effect.

Are you sure Me.TimeToReachQueue and Me.TimeToBeReceived
have non-zero values? If not then your message will be
timing out before they ever reach the destination queue.
In that case the message class will be something like "The
time-to-reach-queue has elapsed."


Christian Allard

unread,
Aug 5, 2004, 10:03:05 AM8/5/04
to
Ok I found my error...

To answer about the message class, the message class was unknown.
The trouble was with the virtual directory in IIS. I've re-install MSMQ,
copy the virtual folder created in the default web site, created the same in
my web site and change the directory to my own and everything seems to be
returned to normal.

Now I'm back with my first trouble you can probably help me with. When
sending a message in direct HTTP (in win XP) the ack message goes to
HTTP://ComputerName/.../PRIVATE$/order_queue$ I then create a mapping file to
direct the ack to HTTP://IP.../order_queue$ and everything works fine.

The trouble is when I send a message from a Win2k3 Server box. The ack
message is exactly the same except the end that looks like :
order_queue$?SenderStream=JKD(*SADJ/83024ksjfsd908345jdf098234jsdf

What is this new parameter in the ack?
Can I map them the same way but adding this "key" to my map file?
Why is Win2k3 Server adds this and not XP?
What is the "best" way to handle this?

Doron Juster [MSFT]

unread,
Aug 5, 2004, 10:29:44 AM8/5/04
to
Please review
http://www.microsoft.com/windowsserver2003/techinfo/overview/msmqb2b.mspx
which explain how to configure mapping files for order ack. As a keyword for
searching, look for "StreamReceiptSetup".
This is also explained in online help,
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/proddocs/entserver/msmqconcepts/sag_MSMQconcepts_httpname.asp

Thanks, Doron
--
This posting is provided "AS IS" with no warranties, and confers no rights.
.

"Christian Allard" <Christi...@discussions.microsoft.com> wrote in

message news:7FA229B0-BF66-4EFF...@microsoft.com...

Christian Allard

unread,
Aug 6, 2004, 10:49:02 AM8/6/04
to
I've read your documents but I must have missed something because I'm still
having trouble sending messages.

I have 2x win2k3 (90.0.0.5-90.0.0.6) server and a XP box (90.0.0.7)

I use the following pattern file on each computer

<StreamReceiptSetup xmlns="msmq-streamreceipt-mapping.xml">
<!-- XP box return address -->
<setup>
<LogicalAddress>http://90.0.0.7/msmq/private$/test</LogicalAddress>
<StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
</setup>

<!-- Server2k3 return address -->
<setup>
<LogicalAddress>http://90.0.0.6/msmq/private$/test</LogicalAddress>
<StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
</setup>

<default>http://90.0.0.5/msmq/OrderQ</default>
</StreamReceiptSetup>

and on my servers (not on the XP) I have:
<mapping host="localhost" xmlns="msmq-queue-mapping.xml">
<queue>
<name>http://XpName/msmq/private$/order_queue$</name>
<alias>http://90.0.0.7/msmq/orderack</alias>
</queue>
</mapping>

On my servers I see my xp messages in the queue and they are all unprocessed
(strange since my test que is empty on th xp box)
and the outgoing queue for the other server all the messages are unacked.


"Doron Juster [MSFT]" wrote:

> Please review
> http://www.microsoft.com/windowsserver2003/techinfo/overview/msmqb2b.mspx
> which explain how to configure mapping files for order ack. As a keyword for
> searching, look for "StreamReceiptSetup".
> This is also explained in online help,
> http://www.microsoft.com/technet/prodtechnol/windowsserver2003/proddocs/entserver/msmqconcepts/sag_MSMQconcepts_httpname.asp
>
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

> ..

Doron Juster [MSFT]

unread,
Aug 8, 2004, 10:13:31 AM8/8/04
to
Sorry if I'm a bit confused, but what are you trying to do ?

If you want to send an xact message from Win2003 (90.0.0.5) to XP (90.0.0.7)
and want to change the address which XP use for sending back the order ack
then use the mapping:

<setup>
<LogicalAddress>http://90.0.0.7/msmq/private$/test</LogicalAddress>
<StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
</setup>


on the Win2003 source computer. You don't need anything on the XP computer.


Thanks, Doron
--
This posting is provided "AS IS" with no warranties, and confers no rights.
.

"Christian Allard" <Christi...@discussions.microsoft.com> wrote in
message news:2EAA26E5-580C-419D...@microsoft.com...

Christian Allard

unread,
Aug 9, 2004, 9:57:04 AM8/9/04
to
Ok let's start from the beginning.

If I only want to send http messages from/to my servers 2k3 (through
internet/without NetBUI).
I have make a file (names StreamReceipt_Map.xml) in the correct directory
that contains:


<setup>
<LogicalAddress>http://90.0.0.6/msmq/private$/test</LogicalAddress>
<StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
</setup>
<default>http://90.0.0.5/msmq/OrderQ</default>

my messages reach the queue and appear in the remote private Q. In the
sender outgoing queue they are marked "unacked". I do not see my queue
(90.0.0.5 ... )

Securities: (currently very un-secure but I wanted make this work)
on sending computer: IIS directory: full control to administrators,
anonymous logon, everyone, IIS_WPG
msmq Q: full control to administrators,
anonymous logon, everyone
on the receiving computer: IIS directory: full control to IUSR, IWAM,
Admins, IIS_WPG,
MSMQ Q: same as sending computer

There's surely something very important I'm missing here but I cannot
figured it out
Thx alot


"Doron Juster [MSFT]" wrote:

> Sorry if I'm a bit confused, but what are you trying to do ?
>
> If you want to send an xact message from Win2003 (90.0.0.5) to XP (90.0.0.7)
> and want to change the address which XP use for sending back the order ack
> then use the mapping:
>
> <setup>
> <LogicalAddress>http://90.0.0.7/msmq/private$/test</LogicalAddress>
> <StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
> </setup>
>
>
> on the Win2003 source computer. You don't need anything on the XP computer.
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

Doron Juster [MSFT]

unread,
Aug 9, 2004, 11:00:42 AM8/9/04
to
So you were able to send from Win2003 to XP but you cannot see the outgoing
queue on XP which point to order$ queue on Win2003. Is this correct ?

Do you have any mapping file on the XP box which can interfere with the
order ack ?

I'd suggest you enable error logging on XP (Q15.2 on
http://www.microsoft.com/windows2000/technologies/communications/msmq/wp_msmqfaq.asp )
, restart the msmq service on the XP box, send again from Win2003 and then
post here the msmqlog.bin file. I'll try to decode it and see what's going
wrong.

Thanks, Doron
--
This posting is provided "AS IS" with no warranties, and confers no rights.
.

"Christian Allard" <Christi...@discussions.microsoft.com> wrote in
message news:92362E6A-F2CD-42E1...@microsoft.com...

Christian Allard

unread,
Aug 9, 2004, 12:28:51 PM8/9/04
to
also... I have multiple web site listening to msmq on different IP addresses
default web site having been shut down.


"Doron Juster [MSFT]" wrote:

> Sorry if I'm a bit confused, but what are you trying to do ?
>
> If you want to send an xact message from Win2003 (90.0.0.5) to XP (90.0.0.7)
> and want to change the address which XP use for sending back the order ack
> then use the mapping:
>
> <setup>
> <LogicalAddress>http://90.0.0.7/msmq/private$/test</LogicalAddress>
> <StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
> </setup>
>
>
> on the Win2003 source computer. You don't need anything on the XP computer.
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

Christian Allard

unread,
Aug 9, 2004, 12:29:04 PM8/9/04
to
I forgot to tell you,
I only have a "test" Q in both of my servers. I am trying to change the
permission but I'm still unable to have a full send/ack communication.

"Doron Juster [MSFT]" wrote:

> Sorry if I'm a bit confused, but what are you trying to do ?
>
> If you want to send an xact message from Win2003 (90.0.0.5) to XP (90.0.0.7)
> and want to change the address which XP use for sending back the order ack
> then use the mapping:
>
> <setup>
> <LogicalAddress>http://90.0.0.7/msmq/private$/test</LogicalAddress>
> <StreamReceiptURL>http://90.0.0.5/msmq/OrderQ</StreamReceiptURL>
> </setup>
>
>
> on the Win2003 source computer. You don't need anything on the XP computer.
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

Christian Allard

unread,
Aug 9, 2004, 3:41:01 PM8/9/04
to
Ok I think I found part of my trouble.

The trouble is that I use more than one web site in IIS AND that I stop the
default web site.

When I used a fresh new installation I can communicate perfectly (using a
mapping file).

after that I do:
1) Create a copy of the original MSMQ directory (from the default web site)
into a file
2) Create the new virtual directory in my other web site from the file made
previously
3) Change the of the new MSMQ directories (c:\inetpub...msmq) to my own
directories (d:\.....MSMQ)
4) Assign a new IP to my new web site
5) Change the mapping file to communicate with this new web site IP
(currently only one of them)
6) Stop the default web site in IIS
7) try to send a file from this Win2k3 to the remote Win2k3
=> Ends up with my message being unacked

What do I have to do to be able to do this or what am I doing wrong?


"Doron Juster [MSFT]" wrote:

> So you were able to send from Win2003 to XP but you cannot see the outgoing
> queue on XP which point to order$ queue on Win2003. Is this correct ?
>
> Do you have any mapping file on the XP box which can interfere with the
> order ack ?
>
> I'd suggest you enable error logging on XP (Q15.2 on
> http://www.microsoft.com/windows2000/technologies/communications/msmq/wp_msmqfaq.asp )
> , restart the msmq service on the XP box, send again from Win2003 and then
> post here the msmqlog.bin file. I'll try to decode it and see what's going
> wrong.
>
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

Doron Juster [MSFT]

unread,
Aug 10, 2004, 6:17:52 AM8/10/04
to
On which computer do you have multiple sites ? on the one which send the
xact message or on the one which try to send the order ack ? Or on both ?
Can you send non-xact messages both ways ? I'd suggest you first try
non-xact messages, to test simple send operations, without the order ack.

Thanks, Doron
--
This posting is provided "AS IS" with no warranties, and confers no rights.
.

"Christian Allard" <Christi...@discussions.microsoft.com> wrote in
message news:971BCB33-4B5E-47D0...@microsoft.com...

Christian Allard

unread,
Aug 10, 2004, 3:33:05 PM8/10/04
to
I have multiple IP on both computers running win2k3 server
Ok here's what I found. I had messages in my queue so when I change the
"reply to" ack IP it didn't recongnize the old message so it couldn't ack the
new one since they have to be ack in order.

So when I delete the messages before I change the IP everything seems to be
ok.

Now I create a second queue and try to send to:
"FormatName:DIRECT=HTTP://90.0.0.25/MSMQ/PRIVATE$/test1,DIRECT=HTTP://90.0.0.33/MSMQ/PRIVATE$/test2"

Messages reach the remote queue,
They are ack...
the trouble is when I delete them from the remote queue. Some messages stay
in the outgoing queue without being ack anymore. If I reboot the computer
they come back ack and the behavior seems a little strange when I send new
message to them, the messages are acked but when I delete them again I have
some remaining acked.

I've read the FAQ 3.12 wich looks quiet like my problem but not exactly what
I've got.

Do you know why I have this behavior and where do I look/what do I do to
correct this?

Thx for your patience

Chris


"Doron Juster [MSFT]" wrote:

> On which computer do you have multiple sites ? on the one which send the
> xact message or on the one which try to send the order ack ? Or on both ?
> Can you send non-xact messages both ways ? I'd suggest you first try
> non-xact messages, to test simple send operations, without the order ack.
>
> Thanks, Doron
> --
> This posting is provided "AS IS" with no warranties, and confers no rights.

Christian Allard

unread,
Aug 10, 2004, 5:31:02 PM8/10/04
to
Allright I found this one too,
I used single transaction with multiple element and I've read that it is
forbidden.

I will change my application.

This one is close,
thx

Doron Juster [MSFT]

unread,
Aug 12, 2004, 1:32:19 PM8/12/04
to
Good to hear that it's working now.
Let us know if you need any other help.

Thanks, Doron
--
This posting is provided "AS IS" with no warranties, and confers no rights.
.

"Christian Allard" <Christi...@discussions.microsoft.com> wrote in
message news:8CBBF123-EE74-4CAF...@microsoft.com...

0 new messages