Microsoft KB Archive/198398

= Access Violation in Snalink.exe Activating Numerous Connections =

Article ID: 198398

Article Last Modified on 7/14/2004

-

APPLIES TO


 * Microsoft SNA Server 3.0 Service Pack 4
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 3.0 Service Pack 2
 * Microsoft SNA Server 3.0 Service Pack 3
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 4.0 Service Pack 1

-



This article was previously published under Q198398



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
An access violation in Snalink.exe may occur if numerous 802.2 Data Link Control (DLC) connections are activated concurrently in SNA Server Manager. The number of connections that have to be activated for this problem to occur varies, however it is more likely to occur when activating 50 or more 802.2 DLC connections concurrently. If Drwtsn32.exe is configured as the default debugger on the SNA Server system, the Drwtsn32.log file will be generated that contains entries similar to the following when this access violation occurs:

Application exception occurred: App: exe\snalink.dbg (pid=) When: @ Exception number: c0000005 (access violation)

[...]

function: DlcGetDlcApiBuffer

[...]

6338a427 75fb jnz DlcGetDlcApiBuffer+0x54 (6338a424) FAULT ->6338a429 8b08 mov ecx,[eax] ds:00000000=???????? 6338a42b 898a18020000 mov [edx+0x218],ecx ds:000abe08=00000000


 * > Stack Back Trace <*

FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name 0104fef0 6338a1aa 00090013 00000001 0104ff28 00000027 snadlc!DlcGetDlcApiBuffer (FPO: [3,0,3])

-or-

Application exception occurred: App: exe\snalink.dbg (pid=) When: @ Exception number: c0000005 (access violation)

[...]

function: CopyMessageToDlcBuffers

[...]

6338a20d 8b4c2424 mov ecx,[esp+0x24] ss:01f5e90b=???????? FAULT ->6338a211 66894104 mov [ecx+0x4],ax ds:00f15a07=???? 6338a215 8b542424 mov edx,[esp+0x24] ss:01f5e90b=????????


 * > Stack Back Trace <*

FramePtr ReturnAd Param#1 Param#2 Param#3 Param#4 Function Name 01ad7bdc 0072000a 60000400 38313062 806b0035 13003100 snadlc!CopyMessageToDlcBuffers (FPO: [EBP 0x00000000] [3,3,4])



CAUSE
The SNA DLC Link service (Snadlc.dll) does not correctly handle errors that it receives when the link service internal Logical Link Control (LLC) buffer pool is exhausted. The failure to correctly handle these errors causes the access violation in Snalink.exe.



SNA Server 4.0
To resolve this problem, obtain the latest service pack for SNA Server version 4.0. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

215838 How to Obtain the Latest SNA Server Version 4.0 Service Pack

SNA Server 3.0
To resolve this problem, obtain the latest service pack for SNA Server version 3.0. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

184307 How to Obtain the Latest SNA Server Version 3.0 Service Pack



WORKAROUND
Instead of activating all of the configured 802.2 DLC connections concurrently, activate them individually or in smaller groups.



STATUS
Microsoft has confirmed that this is a problem in SNA Server versions 3.0 and 4.0. This problem was first corrected in SNA Server version 3.0 Service Pack 4 and SNA Server version 4.0 Service Pack 3.



MORE INFORMATION
After you apply the update, the 802.2 DLC Link service will not generate an access violation when activating numerous connections. However, some of the connections may not activate (they will be in an Inactive state) or some of the LUs (Logical Units) defined on the connections may stay in an Inactive state. This can occur when the LLC buffer pool is exhausted. If it appears that the LLC buffer pool is too small, it can be increased by setting the following registry entry:

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

 Start Registry Editor (Regedt32.exe). Locate the following key in the registry: HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/ /Parameters/ExtraParameters/ where  is the link service name (that is, SnaDlc1, SnaDlc2, and so forth). NOTE: The above registry key is one path; it has been wrapped for readability.</li>  On the Edit menu, click Add Value, and then add the following registry value: <pre class="fixed_text">     Value Name: LlcBufferPoolSize Data Type: REG_DWORD Value:

The default pool size is 1024000. If the buffer pool is being exhausted, a value of 4096000 will allow a larger pool that should allow more connections to be started concurrently. </li> Quit Registry Editor.</li></ol>

The SnaDlcX link service must be stopped and started for this change to take effect. This can be accomplished by stopping and starting the SNA Server service. However, if SnaDlcX has been distributed for use with the SNA distributed link service, the SnaDlcX service must be manually stopped and started.

For more information about eligibility for no-charge technical support, see the following article in the Microsoft Knowledge Base:

216047 Activating Numerous DLC Connections Results in Inactive LUs

Keywords: kbbug kbfix kbsna300sp4fix kbsna400sp3fix KB198398

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.