Overview
Comment: | Correctly qualified the check of the connection - was erroring out sometimes |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60 |
Files: | files | file ages | folders |
SHA1: |
9b2b3866ab1ae36dc862ea5a6c1452d2 |
User & Date: | mrwellan on 2014-11-13 18:06:19 |
Other Links: | branch diff | manifest | tags |
Context
2014-11-14
| ||
07:16 | Added exception handler to tasks:open-db check-in: 182a73b7ce user: mrwellan tags: v1.60 | |
2014-11-13
| ||
18:06 | Correctly qualified the check of the connection - was erroring out sometimes check-in: 9b2b3866ab user: mrwellan tags: v1.60 | |
17:33 | Fix for the dreaded sync bug check-in: c0aa0a3942 user: mrwellan tags: v1.60 | |
Changes
Modified rmt.scm from [9406211371] to [79ec3bfb22].
︙ | ︙ | |||
61 62 63 64 65 66 67 | (define (rmt:send-receive cmd rid params #!key (attemptnum 0)) ;; clean out old connections (mutex-lock! *db-multi-sync-mutex*) (let ((expire-time (- (current-seconds) 60))) (for-each (lambda (run-id) (let ((connection (hash-table-ref/default *runremote* run-id #f))) | | | | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | (define (rmt:send-receive cmd rid params #!key (attemptnum 0)) ;; clean out old connections (mutex-lock! *db-multi-sync-mutex*) (let ((expire-time (- (current-seconds) 60))) (for-each (lambda (run-id) (let ((connection (hash-table-ref/default *runremote* run-id #f))) (if (and connection (< (http-transport:server-dat-get-last-access connection) expire-time)) (begin (debug:print-info 0 "Discarding connection to server for run-id " run-id ", too long between accesses") (hash-table-delete! *runremote* run-id))))) (hash-table-keys *runremote*))) (mutex-unlock! *db-multi-sync-mutex*) (let* ((run-id (if rid rid 0)) (connection-info (let ((cinfo (hash-table-ref/default *runremote* run-id #f))) |
︙ | ︙ | |||
88 89 90 91 92 93 94 | #f)))) (jparams (db:obj->string params))) (if connection-info (let ((res (http-transport:client-api-send-receive run-id connection-info cmd jparams))) (http-transport:server-dat-update-last-access connection-info) (if res (db:string->obj res) | | | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | #f)))) (jparams (db:obj->string params))) (if connection-info (let ((res (http-transport:client-api-send-receive run-id connection-info cmd jparams))) (http-transport:server-dat-update-last-access connection-info) (if res (db:string->obj res) (begin ;; let ((new-connection-info (client:setup run-id))) (debug:print 0 "WARNING: Communication failed, trying call to http-transport:client-api-send-receive again.") (hash-table-delete! *runremote* run-id) ;; don't keep using the same connection ;; no longer killing the server in http-transport:client-api-send-receive ;; may kill it here but what are the criteria? ;; start with three calls then kill server (if (eq? attemptnum 3)(tasks:kill-server-run-id run-id)) |
︙ | ︙ |