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

Threads blocking on BaseInputStream initialization

1 view
Skip to first unread message

Seva

unread,
Jun 10, 2008, 5:05:00 PM6/10/08
to
I'm running some queries in multiple (like ~100) threads using plain JDBC and
MS JDBC driver.
What I'm observing is that most threads are waiting for
java.util.logging.Logger class monitor trying to enter
java.util.logging.Logger.getLogger() static method in
com.microsoft.sqlserver.jdbc.BaseInputStream constructor. So stack trace
looks like this for _almost_all_threads:

"MultiDataGridTask-193763-81841" prio=6 tid=0x0000000015f65200 nid=0x1108
waiting for monitor entry [0x000000002c38e000..0x000000002c38fb60]
at java.util.logging.Logger.getLogger(Unknown Source)
- waiting to lock <0x00000000804c9488> (a java.lang.Class)
at com.microsoft.sqlserver.jdbc.BaseInputStream.(Unknown Source)
at com.microsoft.sqlserver.jdbc.SimpleInputStream.(Unknown Source)
at com.microsoft.sqlserver.jdbc.DDC.convertNonUnicodeNonPLPToObject(Unknown
Source)
at com.microsoft.sqlserver.jdbc.ServerDTVImpl.getValue(Unknown Source)
at com.microsoft.sqlserver.jdbc.DTV.getValue(Unknown Source)
at com.microsoft.sqlserver.jdbc.Column.getValue(Unknown Source)
at com.microsoft.sqlserver.jdbc.Column.getValue(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getObject(Unknown Source)
at our.code.base.RowSet.sendToWriter(RowSet.java:90)

There are two problems about that:
1) it's probably bad idea to instantiate a logger every time the stream is
instantiating (let's see if it's fixed in the next release)

2) I don't see a thread that owns (locks) that monitor in the full thread
dump! Can someone please comment on this - how is this ever possible?

Any hints/ideas on workaround are highly appreciated.
Regards,
Seva

Evan T. Basalik (MSFT)

unread,
Jun 17, 2008, 4:39:47 PM6/17/08
to
A case has been opened on this and we are working directly with Seva to understand the best way to address this issue.

Evan (MSFT)
--------------------
>Thread-Topic: Threads blocking on BaseInputStream initialization
>thread-index: AcjLPaV9JqCqkftZSM+pwqHiKTK9yQ==
>X-WBNR-Posting-Host: 207.46.193.207
>From: =?Utf-8?B?U2V2YQ==?= <Se...@discussions.microsoft.com>
>Subject: Threads blocking on BaseInputStream initialization
>Date: Tue, 10 Jun 2008 14:05:00 -0700
>Lines: 33
>Message-ID: <B82DFE70-444F-4E81...@microsoft.com>
>MIME-Version: 1.0
>Content-Type: text/plain;
> charset="Utf-8"
>Content-Transfer-Encoding: 7bit
>X-Newsreader: Microsoft CDO for Windows 2000
>Content-Class: urn:content-classes:message
>Importance: normal
>Priority: normal
>X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.2992
>Newsgroups: microsoft.public.sqlserver.jdbcdriver
>Path: TK2MSFTNGHUB02.phx.gbl
>Xref: TK2MSFTNGHUB02.phx.gbl microsoft.public.sqlserver.jdbcdriver:525
>NNTP-Posting-Host: tk2msftibfm01.phx.gbl 10.40.244.149
>X-Tomcat-NG: microsoft.public.sqlserver.jdbcdriver

Evan T. Basalik
This posting is provided “AS IS” with no warranties, and confers no rights.


0 new messages