SMB Issue

This forum is for general support of Xbase++
Post Reply
Message
Author
pweisbrot
Posts: 4
Joined: Thu Aug 30, 2018 11:21 am

SMB Issue

#1 Post by pweisbrot »

Our application is an xBase++ application that has been using SMB1. This is because SMB2 forces the use of OpLocks which can cause database data corruptions. Windows 10 has recently disabled SMB1. We need to figure out a way to use SMB2, so that Windows 10 machines can still communicate with the Windows 7 machines.

We read that installing the “SMB2 Workstation Configuration” patch on the Windows 7 computers can fix this issue ( http://www.alaska-software.com/community/smb2.cxp ). Will that work, or is there something else that can be done to prevent file/data corruption when using SMB2 between Windows 7 and 10 computers?

Thank you,
Preston

User avatar
Auge_Ohr
Posts: 1405
Joined: Wed Feb 24, 2010 3:44 pm

Re: SMB Issue

#2 Post by Auge_Ohr »

pweisbrot wrote:been using SMB1. This is because SMB2 forces the use of OpLocks
AFAIK, OpLocks is include in SMB1 else you can't share File :naughty:
pweisbrot wrote:We need to figure out a way to use SMB2
SMB1 use Drive Letter by Lanmanager over UDP Port 135-139 and these are default disable on a "new" PC with Windows 10

---
i guess you can PING other Computer :?:
btw. i recommend to use Static IP for each PC instead of DHCP.

now if you want to access a folder try

Code: Select all

DIR \\192.168.xxx.xxx\Sharefolder\*.*
or
DIR \\Pcname\Sharefolder\*.*
so if you have a Function NET_USE() you just have to change "Driveletter+Path" to "UNC-Path"

---

the Difference of SMB1 vs. SMB2 is a local Cache which can make Problem.
e.g. PDR 6954 ( File() return .T. after file was deleted )

Patch from Alaska disable Cache with 3 Parameter (set to 0 = zero )
see https://docs.microsoft.com/en-us/previo ... 0(v=ws.10)

Code: Select all

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters

DirectoryCacheLifetime
FileNotFoundCacheLifetime
FileInfoCacheLifetime
i use a RAMDISK (ImDisk) and share %TEMP% on it

---

if your App have work before it should work now same Way.

if not People most try to change DBESYS but thats IMHO NOT the Way :naughty:
only DATA-Component ***_LIFETIME set to 0 (zero) make Sence for Network and Threads
greetings by OHR
Jimmy

Post Reply