SQL Adapter with Map blocks SQL Server?



We have a receive port that executes a stored procedure via an SQL
Adapter on regular intervals. If we don't specify any inbound/outbound
maps on the receive/send ports, but instead just use
XmlReceive/Passthrough as receive/send pipeline and simply dump the XML
data returned from the stored proc to disk, everything works fine.
However... if we specify inbound and outbound maps, SQL Server
hangs/freezes/blocks something when executing the stored proc.

If we take a look in SQL Server, under Management->Current
Activity->Locks/Process ID, we can see the following:

- spid 58
- spid 59 (Blocking)
- spid 60...64
- spid 65 (Blocked by 59)
- spid 66

Using SQL Profiler, we see this:

Event TextData Appname Dur. SPID

(this is when we enable the adapter)
SP:Starting exec sp_oledb_ro_usrname VS.NET 73
SP:Completed exec sp_oledb_ro_usrname VS.NET 0 73
SP:Starting exec spDoStuffHere VS.NET 73
SP:Completed exec spDoStuffHere VS.NET 3865 73

(this is when the adapter executes the procedure the first time)
SP:Starting exec sp_oledb_ro_usrname BzT2004 59
SP:Completed exec sp_oledb_ro_usrname BzT2004 0 59
SP:Starting exec spDoStuffHere BzT2004 59
SP:Completed exec spDoStuffHere BzT2004 4156 59

(this is when we disable the adapter)
SP:Starting exec sp_oledb_ro_usrname VS.NET 81
SP:Completed exec sp_oledb_ro_usrname VS.NET 0 81
SP:Starting exec spDoStuffHere VS.NET 81
SP:Completed exec spDoStuffHere VS.NET 3941 81

So... what is going on here?
Why is SQL Server affected by whether or not we have inbound/outbound
maps on the receive/send ports? I thought BizTalk 2004 gathered up all
the data received from the proc, disconnected, and THEN performed the
transformation?
Why does Visual Studio.NET (Windows Operating System, if performed via
BizTalk Administration Console) execute the procedure when
enabling/disabling the adapter?

Oh, and the maps work just fine if we test them by using an XML file
containing the data, instead of running the procedure in order to get
it, so it doesn't seem to be a map problem. The stored proc also works
just fine when executed from either Query Analyzer or from a receive
port with no inbound map.

Or maybe you're not supposed to perform transformations directly on an
SQL port, but rather dump the XML to disk and then have another set of
receive/send ports pick it up and do the transform?

I'm confused...

Thanks
Niklas Uhlin

.



Relevant Pages

  • Re: SQL DBA Client
    ... What is required depends on how you expose your SQL... ... measures you should consider are changing the port number ... you're using and using a User account with minimal ... Enterprise Manager accordingly (configuring the Client ...
    (microsoft.public.windows.server.sbs)
  • Re: Merge replication in SQL Server
    ... However, port 443 is for https, did you want your SQL ... Configuring an instance of SQL Server to use a static port ... you can script out replication jobs by right clicking on a publication ...
    (microsoft.public.sqlserver.replication)
  • Re: IIS, SQL 2000 & XPs Firewall
    ... Will anything change when I install SQL 2008 on the laptop? ... Queries to the Data Engine must go to the port that SQL Server is ... More info: How to: Configure a Windows Firewall for Database Engine Access ...
    (microsoft.public.sqlserver.connect)
  • Re: Connecting to an instance in a cluster
    ... "Geoff N. Hiten" wrote: ... you cannot reuse port numbers. ... Microsoft SQL Server MVP ...
    (microsoft.public.sqlserver.clustering)
  • Re: Cool SQL Presentation At IDUG North America
    ... Google has some great stuff for connecting maps with data. ... >>> you could present your SQL. ... >>> If you will not be present at the conference, ...
    (comp.databases.informix)