|
Home > Archive > SQL Anywhere ultralite > April 2005 > Re: Communication error 29 (Internal error 9982)
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Re: Communication error 29 (Internal error 9982)
|
|
| Jack Dongarra 2005-03-30, 9:41 am |
| Hi, here is my envirnoment, hope that it can make you having
a clear picture.
MobiLink Server (Windows2000, IP: 10.130.118.113)
-------------------------------------------------
Build 8.0.2.4339
Startup by: dbmlsrv8 -c "dsn=3d<dsn>" -dl -o ml.log -x
http(host=3d10.130.118. 113;port=3d8082;unkn
own_timeout=3d18000)
-za -zu+
IIS 5.0 (WindowsXP SP2, IP: 10.0.0.3:443)
-----------------
1. Copy iaredirector.dll and redirector.config to
C:\inetpub\scripts
2. Redirector Config (redirector.config):
SLEEP =3d 1800
REDIRECTOR_HOST=3dlo
calhost
REDIRECTOR_PORT=3d80
ML=3d10.130.118.113:8082
ML_CLIENT_TIMEOUT=3d
1800
3. Certificates
3.1 Use gencert.exe tool to generate a ROOT CA Certificate
---------------------------------------------------------
i) gencert -r -c
ii) Save certificate as test_root.crt
iii) Save privacy key as test_root.key
iV) Concat (Copy test_root.crt + test_root.key
test_root.cer)
3.2 Generate a certificate request from IIS
------------------------------------------
i) Save the request in C:\certreq.txt
3.3 Use the Root Certificate to sign the certificate for IIS
-----------------------------------------------------------
i) gencert -s -q C:\certreq.txt
ii) use test_root.crt and test_root.key to sign it
ii) save certificate as test_IIS.crt
iii) Concat (Copy test_IIS.crt + test.key
test_IIS_Signed.cer)
iv) use test_IIS_Signed.cer as the server certificate for
IIS
Pocket PC (Compact flash ethernet lan card, IP: 10.0.0.2)
---------------------------------------------------------
Development tools: eVB + OLE DB
Microsoft=ae Pocket PC Version 3.0.11171 (Build 11178)
dbsrv8 8.0.2.3601
dbmlsync 8.0.2.4505
The root certificate test_root.crt is convert to DER X.509
and copy into \ (a must ?)
dbmlsync.exe -pd dbhttps8.dll -c
"uid=3d<userID>;pwd=3d<Password>;dsn=3d<dsn>" -n RemoteMain
-e
"sv=3d<ScriptVersion> ;ctp=3dhttps;adr=3d'
host=3d10.0.0.3;port=3d443;
trusted_certificates
=3d\test_root. crt;url_suffix=3dscr
ipts/iaredirect.dll/ml/'"
-k -mp -o log.txt "NewPassword"
Before I try to deploy on real machine, I have test it once
in the PC (same machine of IIS) first. Using the same remote
db and below script to run which is working fine and
synchronize successfully.
dbmlsync -c
" eng=3dremote_db;uid=
3d<userID>;pwd=3d<Password>" -n
RemoteMain -e
"sv=3d<ScriptVersion> ;ctp=3dhttps;adr=3d'
host=3dlocalhost;por
t=3d443;
trusted_certificates
=3d\test_root. crt;url_suffix=3dscr
ipts/iaredirect.dll/ml/'"
-k -o log.txt -mp "NewPassword"
Thank you very much !!!
> Jack Dongarra wrote in
> news:423e8d8a.13f4.1681692777@sybase.com of
> sybase.public.sqlanywhere.ultralite:
>
> Please ALWAYS include version and MORE importantly BUILD
> number with EACH post (dbeng9 -v).
>
> JD> Does anyone has idea on "Unable to open a
> 'certicom_tls' JD> network communication. Handshake error.
> The system-specific JD> error code is 29." ?
>
> Show us the code you used to setup the synchronization
> object in UL. We need to see what parameters you are
> using.
>
> What UL API did you use to develop your program?
> Embedded SQL
> C++API
> AppForge
> ...
>
> What OS are you running on?
>
> JD> It occurs when https sync between IIS.
>
> How is the device connected to the network? Wifi, cradle,
> .. Is this going over the Internet, or all internal
> network?
>
> How did you configure IIS, what instructions did you
> follow?
>
> Did you read this section:
>
> MobiLink Administration Guide
> Synchronizing Through a Web Server With the Redirector
> Configuring Redirector properties (all versions)
>
> Make sure you set the LOG_LEVEL =3d 2 in your
configuration
> file and when you get the error check the IIS logs for any
> information.
>
> --
> David Fishburn
> Certified ASA Developer Version 8
> iAnywhere Solutions - Sybase
> Professional Services
> Please only post to the newsgroup
> Please ALWAYS include version and MORE importantly BUILD
> number with EACH post (dbeng9 -v).
>
> EBFs and Maintenance Releases
> http://downloads.sybase.com/swx/sdmain.stm
>
> Developer Community / Whitepapers
> http://www.ianywhere.com/developer
>
> CaseXpress - to report bugs
> http://casexpress.sybase.com
>
> CodeXchange - Free samples
>
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url]
>
| |
| David Fishburn 2005-03-31, 8:02 pm |
| Jack Dongarra wrote in news:424a8d51.5677.1681692777@sybase.com of
sybase.public.sqlanywhere.ultralite:
....
JD> MobiLink Server (Windows2000, IP: 10.130.118.113)
JD> -------------------------------------------------
JD> Build 8.0.2.4339
....
JD> IIS 5.0 (WindowsXP SP2, IP: 10.0.0.3:443)
JD> -----------------
JD> 1. Copy iaredirector.dll and redirector.config to
JD> C:\inetpub\scripts
JD> 2. Redirector Config (redirector.config):
JD> SLEEP = 1800
JD> REDIRECTOR_HOST=loca
lhost
JD> REDIRECTOR_PORT=80
JD> ML=10.130.118.113:8082
JD> ML_CLIENT_TIMEOUT=18
00
You did not add: LOG_LEVEL = 2
You may want to look at the sample I put together that does IIS and
dbmlsync via HTTPS.
http://ianywhere.codexchange.sybase...ctDocumentList?
folderID=319&expandFolder=319&folderID=0
Pick the example called:
MobiLink Via HTTPS (and IIS)
--
David Fishburn
Certified ASA Developer Version 8
iAnywhere Solutions - Sybase
Professional Services
Please only post to the newsgroup
Please ALWAYS include version and MORE importantly BUILD number with
EACH post (dbeng9 -v).
EBFs and Maintenance Releases
http://downloads.sybase.com/swx/sdmain.stm
Developer Community / Whitepapers
http://www.ianywhere.com/developer
CaseXpress - to report bugs
http://casexpress.sybase.com
CodeXchange - Free samples
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url]
| |
| Jack Dongarra 2005-04-01, 7:01 am |
| "LOG_LEVEL=2" is added. But it still not providing any
useful information about the error.
I think the problem comes from HTTPS connection between
remote client (PocketPC) and IIS, not because of data
redirection.
I have already done my testing successfully by following
your example (A very nice example!). But it only works on my
PC.
Are there any tricky procedures when deploying to Pocket PC?
What is "Communication error 29 (Interal error 9982)"? What
is the possible cause of this error?
Thank you very much!
> Jack Dongarra wrote in
> news:424a8d51.5677.1681692777@sybase.com of
> sybase.public.sqlanywhere.ultralite: ....
> JD> MobiLink Server (Windows2000, IP: 10.130.118.113)
> JD> -------------------------------------------------
> JD> Build 8.0.2.4339
> ...
> JD> IIS 5.0 (WindowsXP SP2, IP: 10.0.0.3:443)
> JD> -----------------
> JD> 1. Copy iaredirector.dll and redirector.config to
> JD> C:\inetpub\scripts
> JD> 2. Redirector Config (redirector.config):
> JD> SLEEP = 1800
> JD> REDIRECTOR_HOST=loca
lhost
> JD> REDIRECTOR_PORT=80
> JD> ML=10.130.118.113:8082
> JD> ML_CLIENT_TIMEOUT=18
00
>
> You did not add: LOG_LEVEL = 2
>
> You may want to look at the sample I put together that
> does IIS and dbmlsync via HTTPS.
>
>
http://ianywhere.codexchange.sybase...ctDocumentList?
> folderID=319&expandFolder=319&folderID=0
>
> Pick the example called:
> MobiLink Via HTTPS (and IIS)
>
> --
> David Fishburn
> Certified ASA Developer Version 8
> iAnywhere Solutions - Sybase
> Professional Services
> Please only post to the newsgroup
> Please ALWAYS include version and MORE importantly BUILD
> number with EACH post (dbeng9 -v).
>
> EBFs and Maintenance Releases
> http://downloads.sybase.com/swx/sdmain.stm
>
> Developer Community / Whitepapers
> http://www.ianywhere.com/developer
>
> CaseXpress - to report bugs
> http://casexpress.sybase.com
>
> CodeXchange - Free samples
>
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url]
>
| |
| Jack Dongarra 2005-04-01, 7:01 am |
| I have found some information about handshake error in
Sybase documentation:
--------------------------------------------------------------------------
The secure handshake failed. Check the following:
1) On the client, the correct host machine and port number
were specified.
2) On the server, the correct port number was specified.
3) The correct certificate file was specified, both on the
client and on the server.
--------------------------------------------------------------------------
For 1 & 2, I am sure they are correct.
For 3, on IIS machine. I am sure the root certificate is
installed as a "Trusted Root Certificate".
But on Pocket PC, shall I i) also install the root
certificate or ii) just place it into a specific folder and
then specify the path of the root certificate in dbmlsync?
For i), I used AddRootCert.exe (PocketPC 2002) to install
the root certificate (converted to Der X.509) successfully.
For ii), I have placed the root certificate into My Device\
dbmlsync ....... -e
"ctp=https;...;adr='.... ;trusted_certificate
s=\test_root.cer';
..." .....
Both i) & ii) get the same error: Handshake error 29. Why?
> "LOG_LEVEL=2" is added. But it still not providing any
> useful information about the error.
>
> I think the problem comes from HTTPS connection between
> remote client (PocketPC) and IIS, not because of data
> redirection.
>
> I have already done my testing successfully by following
> your example (A very nice example!). But it only works on
> my PC.
>
> Are there any tricky procedures when deploying to Pocket
> PC? What is "Communication error 29 (Interal error 9982)"?
> What is the possible cause of this error?
>
> Thank you very much!
>
>
http://ianywhere.codexchange.sybase...ctDocumentList?
>
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url][color=darkred]
| |
| David Fishburn 2005-04-01, 8:02 pm |
| Jack Dongarra wrote in news:424d1900.7b71.1681692777@sybase.com of
sybase.public.sqlanywhere.ultralite:
[color=darkred]
Thank you, I wrote it just for these problems.
....
JD> For 3, on IIS machine. I am sure the root certificate is
JD> installed as a "Trusted Root Certificate".
JD> But on Pocket PC, shall I i) also install the root
JD> certificate or ii) just place it into a specific folder and
JD> then specify the path of the root certificate in dbmlsync?
JD>
JD> For i), I used AddRootCert.exe (PocketPC 2002) to install
JD> the root certificate (converted to Der X.509) successfully.
JD>
JD> For ii), I have placed the root certificate into My Device\
JD>
JD>
JD> dbmlsync ....... -e
JD> "ctp=https;...;adr='.... ;trusted_certificate
s=\test_root.cer';
JD> .." .....
First running AddRootCert.exe should not be required on the PocketPC
device, since that would be for Internet Explorer.
It is my understanding there should be *no* difference between running
dbmlsync on your desktop as on the handheld.
So:
1. Run the sample, make sure it works.
2. Copy the database and transaction log and certificate file to the
handheld.
3. Use the same command line, except changing the location of the
certificate file.
That should be it, it should just work at that point.
Run dbmlsync using -v+ -o rem.txt and post the output if you have
further troubles. Make sure you follow the above 3 steps.
--
David Fishburn
Certified ASA Developer Version 8
iAnywhere Solutions - Sybase
Professional Services
Please only post to the newsgroup
Please ALWAYS include version and MORE importantly BUILD number with
EACH post (dbeng9 -v).
EBFs and Maintenance Releases
http://downloads.sybase.com/swx/sdmain.stm
Developer Community / Whitepapers
http://www.ianywhere.com/developer
CaseXpress - to report bugs
http://casexpress.sybase.com
CodeXchange - Free samples
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url]
| |
| Jack Dongarra 2005-04-04, 7:01 am |
| The problem has been solved by upgrading dbhttps8.dll from
version 8.0.2.4339 to 8.0.3.5002.
Thank you very much!
> Jack Dongarra wrote in
> news:424d1900.7b71.1681692777@sybase.com of
> sybase.public.sqlanywhere.ultralite:
>
> following >> your example (A very nice example!). But it
> only works on >> my PC.
>
> Thank you, I wrote it just for these problems.
>
>
> ...
> JD> For 3, on IIS machine. I am sure the root certificate
> is JD> installed as a "Trusted Root Certificate".
> JD> But on Pocket PC, shall I i) also install the root
> JD> certificate or ii) just place it into a specific
> folder and JD> then specify the path of the root
> certificate in dbmlsync? JD>
> JD> For i), I used AddRootCert.exe (PocketPC 2002) to
> install JD> the root certificate (converted to Der X.509)
> successfully. JD>
> JD> For ii), I have placed the root certificate into My
> Device\ JD>
> JD>
> JD> dbmlsync ....... -e
> JD> "ctp=https;...;adr='....
> ;trusted_certificate
s=\test_root.cer'; JD> .." .....
>
> First running AddRootCert.exe should not be required on
> the PocketPC device, since that would be for Internet
> Explorer.
>
> It is my understanding there should be *no* difference
> between running dbmlsync on your desktop as on the
> handheld.
>
> So:
> 1. Run the sample, make sure it works.
> 2. Copy the database and transaction log and certificate
> file to the
> handheld.
> 3. Use the same command line, except changing the
> location of the
> certificate file.
>
> That should be it, it should just work at that point.
>
> Run dbmlsync using -v+ -o rem.txt and post the output if
> you have further troubles. Make sure you follow the above
> 3 steps.
>
> --
> David Fishburn
> Certified ASA Developer Version 8
> iAnywhere Solutions - Sybase
> Professional Services
> Please only post to the newsgroup
> Please ALWAYS include version and MORE importantly BUILD
> number with EACH post (dbeng9 -v).
>
> EBFs and Maintenance Releases
> http://downloads.sybase.com/swx/sdmain.stm
>
> Developer Community / Whitepapers
> http://www.ianywhere.com/developer
>
> CaseXpress - to report bugs
> http://casexpress.sybase.com
>
> CodeXchange - Free samples
>
[url]http://ianywhere.codexchange.sybase.com/servlets/ ProjectDocumentList[
/url]
>
|
|
|
|
|