Hello All
For the deeper insight what you can use to
create test environments...
10.0.40.111 is a symbolic name, use your own.
netserver.prg
==========
0. Place netserver.exe on 10.0.40.111 in, say, mydata folder
1. Create a subfolder /data and stay in {mydata}
2. execute: {10.0.40.111/mydata/netserver.exe 63000 10.0.40.111
3. Do not use 127.0.0.1 as it does not work : theoretically it should.
proc main( cPort, cServer )
local pListenSocket
if empty( cPort )
cPort := '63000'
endif
if empty( cServer )
cServer := '127.0.0.1'
endif
pListenSocket := netio_mtserver( val( cPort ), cServer )
if empty( pListenSocket )
? "Cannot start server."
else
wait "Press any key to stop NETIO server."
netio_serverstop( pListenSocket )
pListenSocket := NIL
endif
return
netapplctn.prg
===========
1. Stay anywhere you want on another terminal
2. execute:\>netappln.exe 10.0.40.111 63000
#define DBNAME "net:data/_tst_"
request DBFCDX
proc main( cServer, cPort )
local pSockSrv
set exclusive off
rddSetDefault( "DBFCDX" )
if empty( cServer )
cServer := '127.0.0.1'
endif
if empty( cPort )
cPort := '63000'
endif
?
? "NETIO_CONNECT():", cServer, int( val( cPort ) ), netio_connect(
cServer, int( val( cPort ) ) )
?
createdb( DBNAME )
testdb( DBNAME )
wait
return
proc createdb( cName )
local n
if !dbExists( DBNAME )
dbCreate( cName, {{"F1", "C", 20, 0},;
{"F2", "M", 4, 0},;
{"F3", "N", 10, 2},;
{"F4", "T", 8, 0}} )
? "create neterr:", neterr(), hb_osError()
use (cName)
? "use neterr:", neterr(), hb_osError()
while lastrec() < 100
dbAppend()
n := recno() - 1
field->F1 := chr( n % 26 + asc( "A" ) ) + " " + time()
field->F2 := field->F1
field->F3 := n / 100
field->F4 := hb_dateTime()
enddo
index on field->F1 tag T1
index on field->F3 tag T3
index on field->F4 tag T4
close
?
else
? DBNAME, 'Already exists'
endif
return
proc testdb( cName )
local i, j
?
? 'using:',time()
use (cName)
? "used:", time(), used()
? "nterr:", neterr()
? "alias:", alias()
? "lastrec:", lastrec()
? "ordCount:", ordCount()
for i:=1 to ordCount()
ordSetFocus( i )
? i, "name:", ordName(), "key:", ordKey(), "keycount:", ordKeyCount()
next
ordSetFocus( 1 )
dbgotop()
while !eof()
if ! field->F1 == field->F2
? "error at record:", recno()
? " ! '" + field->F1 + "' == '" + field->F2 + "'"
endif
dbSkip()
enddo
i := row()
j := col()
dbgotop()
? 'locking:',time()
? 'locked:', rlock(), time()
wait
browse()
setpos( i, j )
close
return
THE OBSERVATION
==============
1. USE command takes about 18 seconds to open a table
2. Once table is opened, data access is quiet fast - almost instant
3. Locks are very well synchonized.
4. Data population is instantly visible on other terminals.
10.0.40.111 is a Windows 2003 Server on our local network.
I could not test on some domain server which in fact be a real test.
Regards
Pritpal Bedi
--
View this message in context:
http://www.nabble.com/HBNETIO---How-I-tested-...-tp25244306p25244306.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour