Welcome to dbFreaks.com!
FAQFAQ    SearchSearch      ProfileProfile    Private MessagesPrivate Messages   Log inLog in

Threads blocking on BaseInputStream initialization

 
   Database Help (Home) -> JDBC Driver RSS
Next:  JDBC Performance is no where near .NET performanc..  
Author Message
Seva

External


Since: Jun 10, 2008
Posts: 1



(Msg. 1) Posted: Tue Jun 10, 2008 2:05 pm
Post subject: Threads blocking on BaseInputStream initialization
Archived from groups: microsoft>public>sqlserver>jdbcdriver (more info?)

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

 >> Stay informed about: Threads blocking on BaseInputStream initialization 
Back to top
Login to vote
Evan T. Basalik (MSFT)

External


Since: Nov 21, 2006
Posts: 24



(Msg. 2) Posted: Tue Jun 17, 2008 8:39 pm
Post subject: RE: Threads blocking on BaseInputStream initialization [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

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==?=
>Subject: Threads blocking on BaseInputStream initialization
>Date: Tue, 10 Jun 2008 14:05:00 -0700
>Lines: 33
>Message-ID:
>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
>
>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
This posting is provided “AS IS” with no warranties, and confers no rights.

 >> Stay informed about: Threads blocking on BaseInputStream initialization 
Back to top
Login to vote
Display posts from previous:   
Related Topics:
MDX and JDBC Driver - Hi all, Anybody know if it possible to connect to an as2000 database and run mdx queries using the microsoft jdbc drivers? thanks, Peter

java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]U.. - Folks, I was getting this exception occasionally and tracked in down to the application server C drive being full. Looks like the drivers are writing to logs (event ?) on this drive. Freeing up space removed the problem. Hope this helps someone. ..

JDBC driver doesn't close socket event after connection.cl.. - Hi I have a Java application (on Red Hat Enterprise) that <font color=purple> ; 1) connects every 10 seconds to an MS/SQL database</font> <font color=purple> ; 2) attempts to get the metadata for a specific table</fo...

Redistribution -

I can not connect to SQL Server 2000 on WinXP SP2 - Hi, I am using 'SQLServer 2000 Driver for JDBC' in my java application. My SQL Server is running in Windows XP pc. I dont had any problem before install WindowsXP Service Pack 2. But when i have installed WinXP SP2 my application can not connected to..
   Database Help (Home) -> JDBC Driver All times are: Pacific Time (US & Canada)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You can edit your posts in this forum
You can delete your posts in this forum
You can vote in polls in this forum



[ Contact us | Terms of Service/Privacy Policy ]