I am trying to create and run a SQL Anywhere service:
dbsvc -y -as -i -s Automatic -t Network -sd SAAPDB_RCS_SAPDOC01_0101 -w SAAPDB_RCS_SAPDOC01_0101 "C:\Program Files\SQL Anywhere 16\Bin64\dbsrv16.exe" -c dsn=SAAP_RCS_rem_0101;uid=rohini;pwd=basu -o C:\SAP\SAAP\0101\db\logs\eng_log_0101 -on 4M -x shmem,tcpip(port=5657) -xs http(port=8080;dbn=SAAP_RCS_rem_0101;MaxRequestSize=10M;log=C:\SAP\SAAP\0101\db\logs\web_log_0101.txt) -gd ALL
SQL Anywhere Service Utility Version 16.0.0.2043 Service "SAAPDB_RCS_SAPDOC01_0101" was created successfully.
dbsvc -u SAAPDB_RCS_SAPDOC01_0101
SQL Anywhere Service Utility Version 16.0.0.2043 Service "SAAPDB_RCS_SAPDOC01_0101" start pending. Error starting service "SAAPDB_RCS_SAPDOC01_0101".
Windows Event log shows: SQLANYs_SAAPDB_RCS_SAPDOC01_0101: Cannot open transaction log file -- The system cannot find the file specified.
When I tried running
net start "SQL Anywhere - SAAPDB_RCS_SAPDOC01_0101"
The service started
When I tried running the db server manually from command line:
dbsrv16 -n SAAPDB_RCS_SAPDOC01_0101 C:\SAP\SAAP\db\0101\SAAP_RCS.db -n SAAP_RCS_rem_0101 -o C:\SAP\SAAP\db\logs\eng_log_0101 -on 4M -x shmem,tcpip(port=5657) -xs http(port=8080;dbn=SAAP_RCS_rem_0101;MaxRequestSize=10M;log=C:\SAP\SAAP\db\logs\web_log_0101.txt) -gd ALL
The database started
(P.S: The original discussion started in the below thread:
http://sqlanywhere-forum.sap.com/questions/28796/dbsvc-failing-to-start-mobilink-server-service)
asked
06 Feb '17, 05:57
rohinibasuu
56●7●8●13
accept rate:
0%
This does not make much sense. There should be fundamentally no (functional) difference between doing a NET START or a DBSVC -u the way you are using those. Both call the same Windows Service Manager API to start the service {specifically dbsvc calls StartService() and net1.exe (launched by net.exe) calls StartServiceW()}
Is it possible one is 32bit and the other 64bit (not that a difference there would explain the difference either). Or maybe you have multiple similar service names that look the same (an i vs a 1 or a 0 vs an 'O'h?)
Also, the error you are getting would seem to be unrelated to any of the above. A "Cannot open transaction log file -- The system cannot find the file specified." error would indicate a problem with the directory being mounted, or permissions to scan that directory and/or open the file, or a renamed/mistyped/changed transaction log file name. As such, should behave the same in all cases (except possibly for your foreground test) since these service operations are all [Local]System services and so the permissions should be the same and I assume the directories, permissions and contents have not changed.
I am really puzzled as to why there is a connection string argument in the server start line?
-c dsn=SAAP_RCS_rem_0101;uid=rohini;pwd=basu
The -c option is used to specify cache size.
Jack, that has already been discussed (and corrected) here (cf. the question's P.S.):
http://sqlanywhere-forum.sap.com/questions/28796
I'm not sure why the same wrong command is shown here again...
Sorry, I copy+pasted the command from the original discussion thread.