• Welcome to SQLitening Support Forum.
 

News:

Welcome to the SQLitening support forums!

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Matt Humphreys

#1
Local mode appears fine.
Examples B, C and D run as expected in local.
tables are created, updated, deleted just fine.

I don't know about services but will ask on the wine forum.
At this stage I kinda think that's ok tho.

From what I glean in the event sequence, it doesn't get to the 'create table...' bit until after succesful calls to the service manager, after which it then attempts to create the thread.

As a secondary observation, trying to run the server admin after the initial failing I get
'sqlitening server is in an unknown/invalid status'.
That value is '0' and comes from the function 'GetServiceStatus'
looking at that code it doesn't appear to be failing any of the service calls....eg
' Query service
   IF ISFALSE QueryServiceStatus(lhService, luStatus) THEN FUNCTION = 902 : GOTO CloseHandles
which kinda makes sense since the service does not actually 'start'



The primary issue to me is not being able to create the second temporary table when the server is trying to start. With this I am perplexed...

oh well, it's step thru the code time....:)
#2
yes correct fred, on wine for ubuntu.

Tha't the part I didn't get either, 2 tables in successive calls, writing to the same temp folder..1st works, 2nd one fails.
One would deduce permissions are ok.

It can write to the log file ok.
It seems to install ok, just can't start the service.

hmmmm....
#3
This is the log:
100911035410 Admn Strt ==========<[ Start Server 1.40 ]>==========
100911035410 Admn Flgs TrimLogManually=No
100911035410 Admn Flgs LogConnDcon=Yes
100911035410 Admn Flgs LogInvalidInMessage=Yes
100911035410 Admn Flgs CreateDatabaseAllowed=Yes
100911035410 Admn Data MaxChunkSize=500
100911035410 Admn Data ConnectionTimeout=1
100911035410 Admn FACT Loaded
100911035410 Host LocalHost(127.12.34.56)  Socket=132  Port=51234  ServiceNameSuffix=
100911035410 Eror Create Locks Database Error -- Create Table tblConnections (OwnerTcpFileNumber Unique, User, Computer, IPAddress, DateTime) -- not an error
100911035436 Admn Stop ==========<[ Stop Server ]>==========

it's trying to create the table tblConnections and fails.

This is the source code snippet where it fails (SQLiteningServer.bas):
 
"Create Table tblConnections (OwnerTcpFileNumber Unique, User, Computer, IPAddress, DateTime)"


Is there anything glaringly obvious there?
#4
has anyone had any success in running the server on wine?
#5
Good question and good to know thanks fred.
I have in the past used equates for this very dilemma
%FIELDNAME1 = 1
%FIELDNAME2 = 2
...etc

slF(%FIELDNAME2)
#6
marty,

if you want to get the ip address of the 'localhost' go to the command prompt on the machine on which sqlitening is running and type
ping localhost
it will return the ipaddress  of the local host

if you are testing on the machine on which sqlitening is running just issue slConnect without the ipaddress or port number.

I guess what I'm saying ( and going the long way about it ) is can we first get the app running in remote mode on the same machine as the sqlitening server before we introduce the network?

I daresay the ones you have posted  are for the router from isp and your local nic
#7
can you post the offending code please marty?


#8
I have tested using 3 connections via sqlitening, 2 of which are stress testing the db with updates at a combined 8.5 updates/sec and the slExe VACUUM seems to work fine from the third connection.
The updates pause whilst VACUUM is doing it's thing and then resume.
I can send the VACUUM cmd as often as I want without a hitch it would seem.
I imagine then that a large VACUUM job may cause the connections to time out but that would be trial and error.
does that help?
#9
Perhaps given that there is always going to be one trip to the server and that a fractional trip cannot occur...

LOCAL lTotalDataSize as long

lTotalDataSize = (lHeader_Size + (lSumOfTheWidthsOfColumnsSelected * lNumberOfRows))

IF lTotalDataSize  > %FirstRDC_Size then
   FUNCTION = 1 + CEIL((lTotalDataSize  - %FirstRDC_Size ) / %RDC_Size)
ELSE
   FUNCTION = 1
END IF
#10
yes that's the one. thanks.
#11
You've got Questions? We've got Answers! / preview 1.3
October 22, 2009, 07:25:19 PM
got me with slSel and slSelAry! Definitely be using these.
would timeout value = 0 mean I don't have to keep the connection alive?

slSetRelNamedLocks...with what may be a high use function I liked the slLockSel name mainly because it was shorter.
No real issue I could easily change my include file....just thought i'd throw it out there.
#12
thanks for tutorial Fred.
That and looking at 'BuildRowDataChunk' in source, it's clearer now.
I see the first RDC is 250k anyway.
I wouldn't mind having %gkMaxChunkSize in the config file to play with but not mission critical.

You've put a lot of thought into this....appreciated.
#13
another thought Fred...
In looking at optimistic locking where I am only looking at a single record to edit, it strikes me that using slSelAry would be better than

slSel
slGetRow
for each column do slF

because it is only 1 trip to the server.

In the context then of sending a "BEGIN IMMEDIATE and the SELECT statement in one trip to server,  a function along the lines of slLockSel say called slLockSelAry would also appear beneficial.

(I've completely ignored slSelAry in the past. I guess it was a case of starting to learn with slSel and it worked fine so why look further.)

#14
In moving the forum to sqlitening.com , my reply #28 has gone missing which may have thrown you a curve ball John. Just some conceptual code on optimistic locking.

It obviously didn't make the jump to 'Lite speed! ;D
#15
Thanks Fred you're a champion...agree with Paul on the new slLockSel function...having both would be invaluable.
and including something akin to your comments below above in the docs would, I think be sufficient.