[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference pamsrc::decmessageq

Title:NAS Message Queuing Bus
Notice:KITS/DOC, see 4.*; Entering QARs, see 9.1; Register in 10
Moderator:PAMSRC::MARCUSEN
Created:Wed Feb 27 1991
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2898
Total number of notes:12363

2825.0. "DMQ / Threads PAMS__NOTDCL" by XSTACY::haydenp.ilo.dec.com::phayden (NeoMaxiZoonDweebi) Wed Mar 26 1997 17:03

Hi,

I'm currently creating a Multithreaded Dll which will be used as an ISAPI 
extension.
I'm using DMQ to Query my DB.

I noticed that the DMQ Attach was taking a long time and was leading to a large 
degridation in performance.

Thus my idea was to create a Thread Pool in Dll Main and do an attach for each 
thread when the Dll is loaded. Thus the user never sees the time lag for an 
attach.
The Pool Thread_id and DMQ queue are stored in a linked list. I impersonate the 
ISAPI thread using one of my own and specify the queue I want to use depending 
on the thread_id.

However I'm a little confused not least because I'm not sure exactly how ISAPI 
works.

My stuff works no problem from Dll Main. I can do my attach , match the thread_id 
and queue address. Attach to a specific queue , do puts and gets. Lovely !

But once I try to do this from my Thread routine DMQ tells me 
PAMS__NOTDCL "Process has not been attached to DECmessageQ". Now I know I'm 
attached to DMQ. I can see the attached queues.

I have the impression that this problem is because the Thread is seen as a 
seperate process or something and although I'm attached to DMQ it's not from this 
"process" but from that which ran Dll main???


Any clarifcation or advice would be greatly appreciated.

Thanks,

Peter
T.RTitleUserPersonal
Name
DateLines
2825.1XHOST::SJZKick Butt In Your Face Messaging !Wed Mar 26 1997 17:388
    
    this is discussed in numerous places throughout this notesfile.
    on windows nt,  decmessageq resources cannot be shared  across
    threads.  create your threads first, then create the queue for
    each thread in the context of the thread that needs to use the
    queue.
    
    _sjz.
2825.2XSTACY::haydenp.ilo.dec.com::phaydenNeoMaxiZoonDweebiTue Apr 01 1997 13:036
Thanks !

Got a few pointers from previous notes and Damian.
Seems to work well now

Peter