suspended sql from Softone

464 views
Skip to first unread message

Elias

unread,
Sep 30, 2010, 4:17:32 AM9/30/10
to Softone Developers Network
Καλημέρα. Ανακάλυψα ένα πρόβλημα που παρουσιάστηκε με το εξής σενάριο,
παρόλο που δεν είμαι σίγουρος αν το forum αυτό είναι ο κατάλληλος
χώρος για να το αναφέρω:

α) ανοίγουμε το ευρετήριο παραστατικών παραγωγής (αλλά μπορεί να
συμβεί και σε άλλα κυκλώματα)
β) πατάμε το κουμπί "Ευρετήριο", χωρίς να βάλουμε φίλτρα.
γ) Όταν και αφού έχουμε αρκετές εγγραφές, στον activity monitor της
SQL server βλέπουμε οτι η εντολή "select ..." μπαίνει σε suspended
mode περιμένοντας κάποια απάντηση απο τον client με αποτέλεσμα το
σύστημα να κάνει deadlock και να μήν μας αφήνει να σβήσουμε ή να
αλλάξουμε ή να καταχωρήσουμε άλλο παραστατικό. Βασικά κολλάει το
Softone περιμένοντας τον client που έκανε το ευρετήριο.

Υπάρχει κάποια λύση ?

Ευχαριστώ

Κωνσταντίνος Βάππας

unread,
Sep 30, 2010, 4:31:18 AM9/30/10
to so...@googlegroups.com
Ηλία καλημέρα,
θα ήθελα 2 πληροφορίες:
  1. Μέσα στο S1 στην καρτέλα ρυθμίσεις, στο πρώτο tab παράμετροι, αν είναι τσεκαρισμένη η επιλογή One connection for browse-trns.
  2. Ποια έκδοση του SQL Server και ποιο Service Pack του SQL έχεις.


--
Softone Developers Network group.
To post to this group, send email to so...@googlegroups.com

Elias

unread,
Sep 30, 2010, 4:48:34 AM9/30/10
to Softone Developers Network
Κώστα είσαι μεγάλος.. Ευχαριστώ. Το πρόβλημα λύθηκε.

On 30 Σεπτ, 11:31, Κωνσταντίνος Βάππας <vappaskonstanti...@gmail.com>
wrote:


> Ηλία καλημέρα,
> θα ήθελα 2 πληροφορίες:
>

>    1. Μέσα στο S1 στην καρτέλα ρυθμίσεις, στο πρώτο tab παράμετροι, αν είναι


>    τσεκαρισμένη η επιλογή One connection for browse-trns.

>    2. Ποια έκδοση του SQL Server και ποιο Service Pack του SQL έχεις.


>
> Στις 30 Σεπτεμβρίου 2010 11:17 π.μ., ο χρήστης Elias

> <lillou...@hotmail.com>έγραψε:


>
>
>
> > Καλημέρα. Ανακάλυψα ένα πρόβλημα που παρουσιάστηκε με το εξής σενάριο,
> > παρόλο που δεν είμαι σίγουρος αν το forum αυτό είναι ο κατάλληλος
> > χώρος για να το αναφέρω:
>
> > α) ανοίγουμε το ευρετήριο παραστατικών παραγωγής (αλλά μπορεί να
> > συμβεί και σε άλλα κυκλώματα)
> > β) πατάμε το κουμπί "Ευρετήριο", χωρίς να βάλουμε φίλτρα.
> > γ) Όταν και αφού έχουμε αρκετές εγγραφές, στον activity monitor της
> > SQL server βλέπουμε οτι η εντολή "select ..." μπαίνει σε suspended
> > mode περιμένοντας κάποια απάντηση απο τον client με αποτέλεσμα το
> > σύστημα να κάνει deadlock και να μήν μας αφήνει να σβήσουμε ή να
> > αλλάξουμε ή να καταχωρήσουμε άλλο παραστατικό. Βασικά κολλάει το
> > Softone περιμένοντας τον client που έκανε το ευρετήριο.
>
> > Υπάρχει κάποια λύση ?
>
> > Ευχαριστώ
>
> > --
> > Softone Developers Network group.

> > To post to this group, send email to so...@googlegroups.com- Απόκρυψη κειμένου σε παράθεση -
>
> - Εμφάνιση κειμένου σε παράθεση -

vagelis dermos

unread,
Sep 30, 2010, 6:39:58 AM9/30/10
to so...@googlegroups.com
 
 
Και τι ακριβώς κάνει αυτή "η επιλογή One connection for browse-trns.";

Κωνσταντίνος Βάππας

unread,
Sep 30, 2010, 6:43:03 AM9/30/10
to so...@googlegroups.com
Πως λύθηκε?

vagelis dermos

unread,
Sep 30, 2010, 6:45:51 AM9/30/10
to so...@googlegroups.com
Οχι, τι είναι η επιλογή "One connection for browse-trn";

Elias

unread,
Oct 1, 2010, 5:33:10 AM10/1/10
to Softone Developers Network
Λύθηκε με το one connection for browser trn.
Το πρόβλημα ήταν οτι επειδή το query επέστρεφε πολλά αποτελέσματα, ο
sql κλείδωνε τον πίνακα περιμένοντας απάντηση απο τον client οτι πήρε
όλα τα αποτελέσματα. Εάν τώρα ο χρήστης πήγαινε με το scroll bar μέχρι
την τελευταία εγγραφή, τότε το SQL "ξεκλείδωνε" αφού έπαιρνε απάντηση
οτι τα αποτελέσματα είχαν ληφθεί.
Φαίνεται οτι η επιλογή αυτή έχει να κάνει κάτι με τον client να
ενημερώνει τον sql server για άναφορικά με την λήψη δεδομένων. -
Φυσικά μπορεί και όχι..

Κωνσταντίνος Βάππας

unread,
Oct 1, 2010, 7:14:17 AM10/1/10
to so...@googlegroups.com
Το SoftOne by default ανοίγει 2 connection προς τη βάση.
Επειδή κάποιοι πελάτες ενδεχομένως να έχουν πρόβλημα με τα licenses του SQL (δεν έχουν αρκετά), υπάρχει το συγκεκριμένο flag ώστε να γίνεται η επικοινωνία με τη βάση μέσο ενός connection χωρίς να ανοίγεται δεύτερο.
Δε συνίσταται το τσεκάρισμά του!




--

MakisCE

unread,
Oct 1, 2010, 8:08:18 AM10/1/10
to Softone Developers Network
Πάντως παρόμοιο πρόβλημα συνέβει 2 φορές σε σχετικά μεγάλη
εγκατάσταση..

δεν μπορούσαν να καταχωρήσουν παραστατικό,
και έχοντας το SQL monitor ανοιχτό, κόλλαγε στο UPDATE MTRBALSHEET...
Τρέχοντας το ίδιο query στον SQL Server κατευθείαν έκανε timeout.
σαν να είχε κλειδώσει ο πίνακας..
Με επαννεκίνηση του SQL διορθωνόταν.

δεν έχω αναφορά τι έκαναν πριν, που προκαλούσε αυτή τη συμπεριφορά,
αλλά το "να μήν μας αφήνει να σβήσουμε ή να αλλάξουμε ή να
καταχωρήσουμε άλλο παραστατικό."
είναι ακριβώς η συμπεριφορά που είδα κι εγώ, και είπα μήπως είναι
σχετικό και βοηθήσει

Μάκης
Ροδιακή Πληροφορική

panoramatistis

unread,
Oct 1, 2010, 10:10:49 AM10/1/10
to Softone Developers Network
Σε συγκεκριμένη εγκατάσταση συνέβη πριν 2 ακριβώς χρόνια με έκδοση
208....και SQL2K...
Το κλείδωμα συνέβαινε στα καλά καθούμενα χωρίς καν ο χειριστής που
lockάριζε την βάση να κάνει ο,τιδήποτε....

Βάλαμε SQL2005 για να γλυτώσουμε τα σχετικά προβλήματα page-locking ,
αναβαθμίστηκε η εκδοση σε 209... αλλά το πρόβλημα συνεχιζόταν μέχρι
που 2 μήνες μετά και εντελώς "ξαφνικά", το πρόβλημα εξαφανίστηκε...

...Μέχρι πρώτες μέρες του Σεπτέμβρη, στα καλά καθούμενα και πάλι,
χωρίς καμμία επέμβαση είτε στο Soft1 είτε στον SQL είτε στον σταθμό
εργασίας, το σύστημα πάλι lock-άρει ακριβώς όπως το περιγράφουν οι
συνάδελφοι..... Σε κάποιες περιπτώσεις μάλιστα το lock συμβαίνει σε
SELECT FINDOC ... και ενώ ο χειριστής είναι εντελώς inactive ..... (πχ
απλά έχει μπροστά του ένα ευρετήριο ή μία προβολή πελάτη...)

Το ενδιαφέρον είναι ότι το lock προκαλείται πάντα από τον ίδιο
χειριστή ....

Σε τηλ.επικοινωνία μαζι τους, ζήτησα να αλλάξουν αυτό το one
connection for browser trns flag σε ΟΝ ...μπας και γλιτώσουμε από τα
lock-άρισματα...

Θα ενημερώσω το group για νεότερες εξελίξεις...

Giannis Giorgoulakis

unread,
Oct 1, 2010, 12:01:22 PM10/1/10
to so...@googlegroups.com
Το πρόβλημα δημιουργείται για το λόγο ότι όλα τα write sql statements (INSERT, UPDATE, DELETE) δεν έχουν χρονικό όριο αποτυχίας. Επομένως στην περίπτωση που πέσουν σε lock δημιουργείται πρόβλημα. 

  Μέσα από το Soft1 με την λογική την λογική τον Objects και την αλληλουχία εκτέλεσης των SQLs είναι εξαιρετικά δύσκολο να προκύψει τέτοια περίπτωση. Ωστόσο με όλο αυτό το open architect σύστημα add-ons τελικά δεν μπορεί να αποφευχθεί.

Για το λόγο αυτό υπάρχει μια παράμετρος που ορίζει το χρονικό διάστημα που θα είναι σε αναμονή ένα τέτοιο SQL. Το όνομα της είναι QRYTIMEOUT, περιγράφει τα δευτερόλεπτα που θα  περιμένει το SQL  και  ορίζεται στο CONNECTION SECTION του XCO. .

Στην περίπτωση που η μεταβλητή έχει οριστεί και παρουσιαστεί πρόβλημα lock,  ο ένας από τους δυο χρήστες θα πάρει μήνυμα λάθους ενώ ο άλλος θα συνεχίσει να λειτουργεί κανονικά  όπως κανονικά θα συνεχίσει την λειτουργία του και ο  ο server. 

Ο χρήστης με το μήνυμα λάθους θα ξαναπατήσει καταχώρηση ή διαγραφή ή ότι άλλο και θα συνεχίσει κανονικά την λειτουργία του και αυτός.


Παράδειγμα XCO.
[APPLICATION]
MPR=MENU
IPADDRESS=S1D
SN=11199999999903
AUTOLM=1

[DBCONNECT]
TYPE=MSSQL
SERVER=softone
DATABASE=softone
USER=softone
PASSWORD=softone
QRYTIMEOUT=60




2010/10/1 panoramatistis <andy....@gmail.com>
Reply all
Reply to author
Forward
0 new messages