This document describes a continuing problem we have been experiencing using
a SQL Server linked server connection to an IBM UniVerse data source via
ODBC.

This issue manifests itself when querying the linked server, and appears to
be related to an overall gradual loss of memory. We have tested using both
our production server as well as a virtual test environment and see the same
results. 

>> Universe environment
Universe version 10.2.10
Microsoft Windows Server 2003 R2
Service Pack 2

In our production environment we are using the following versions:
Microsoft SQL Server Management Studio                          
9.00.4035.00
Microsoft Analysis Services Client Tools                              
2005.090.4035.00
Microsoft Data Access Components (MDAC)                      
2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
Microsoft MSXML                                                                 
          
2.6 3.0 6.0 
Microsoft Internet Explorer                                                     
  
7.0.5730.13
Microsoft .NET Framework                                                        
 
2.0.50727.3607
Operating System                                                                
          
5.2.3790 (Windows Server 2003 R2 with 32GB RAM)

We use the UniOLEDB Provider for the linked server and we have checked for
the latest UniOLEDB drivers. We have tried changing the MemToLeave area by
setting the –g option to 3072 - which delays the problem but does not stop
it from occurring, it just happens less frequently. 

In our virtual test environment, we are using the following versions:
Microsoft SQL Server Management Studio                          
9.00.4035.00
Microsoft Analysis Services Client Tools                              
2005.090.4035.00
Microsoft Data Access Components (MDAC)                      
2000.086.3959.00 (srv03_sp2_rtm.070216-1710)
Microsoft MSXML                                                                 
          
2.6 3.0 6.0 
Microsoft Internet Explorer                                                     
  
8.0.6001.18702
Microsoft .NET Framework                                                        
 
2.0.50727.3607
Operating System                                                                
          
5.2.3790 (Windows Server 2003 R2 with 2GB RAM)

In test, we have utilized the following query to monitor memory usage while
performing large queries against the linked server:

;WITH VAS_Summary AS 
(
SELECT 
Size = VAS_Dump.Size, 
Reserved = SUM(CASE(CONVERT(INT, VAS_Dump.Base)^0) WHEN 0 THEN 0 ELSE 1
END), 
Free = SUM(CASE(CONVERT(INT, VAS_Dump.Base)^0) WHEN 0 THEN 1 ELSE 0 END) 
FROM 
( 
SELECT CONVERT(VARBINARY, SUM(region_size_in_bytes)) [Size], 
region_allocation_base_address [Base]
FROM sys.dm_os_virtual_address_dump 
WHERE region_allocation_base_address <> 0x0 
GROUP BY region_allocation_base_address 
UNION 
SELECT CONVERT(VARBINARY, region_size_in_bytes) [Size], 
region_allocation_base_address [Base]
FROM sys.dm_os_virtual_address_dump 
WHERE region_allocation_base_address = 0x0 
) 
AS VAS_Dump 
GROUP BY Size
)

INSERT INTO tbl_chkMemToLeaveSpace
SELECT GETDATE(), SUM(CONVERT(BIGINT,Size)*Free)/1024,
CAST(MAX(Size) AS BIGINT)/1024 
FROM VAS_Summary 
WHERE Free <> 0

The results of this monitoring have always shown that we start with
approximately 836132KB TotalAvailMem and 122216KB MaxFreeSize. Then, as the
queries run, the amount of available and free memory have continually
dropped until there is only 2000-3000KB free, and then we see any one of the
following error message(s) during any attempted query execution:  (In this
example – when we received this message, our monitoring showed 43248KB
TotalAvailMem and 2728KB MaxFreeSize)

OLE DB provider "MSDASQL" for linked server "pauvqa1" returned message
"[IBM][UVODBC][0000000]Unable to allocate sufficient memory!".
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server
"pauvqa1".

After trying to query a second time:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "pauvqa1" reported an error.
The provider reported an unexpected catastrophic failure.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server
"pauvqa1".

Additionally, we have seen the following series of error messages when
performing the same test of using SQL queries, combined with utilizing a
custom Access ADP (access data project) that calls stored procedures relying
on the Uni OLEDB driver as part of the programming. In this example, we saw
the following error message in SQL Server:

 

Then we tried the Access ADP functionality, which calls a stored procedure
that relies on the UniVerse linked server (Uni OLEDB) and got the following
series of error messages:


 

 

 

We have tried the DBCC options for clearing the various caches but it did
not help. The only way we have been able to resolve the issue and restore
the memory is to restart the MSSQLSERVER service.



-- 
View this message in context: 
http://old.nabble.com/SQL-server-to-Universe-via-ODBC-problems-tp28843937p28843937.html
Sent from the U2 - Users mailing list archive at Nabble.com.

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to