Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

COM + 1.5 Distributed transaction problem (Sybase)

Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος axaros στις 28-06-2005, 11:58. Υπάρχουν 25 απαντήσεις.
Σελίδα 2 από 2 (26 εγγραφές)   < 1 2
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  08-06-2005, 00:56 2566 σε απάντηση της 2529

    Re: COM + 1.5 Distributed transaction problem (Sybase)

     cap wrote:

    Γιώργο, διόρθωσέ με σε όποιο σημείο δεν τα λέω καλά.



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

    Αν ένα από τα child components, έχει κάνει .SetAbort αλλά δεν έχει σηκώσει ένα exception για καταλάβεις ότι το transaction δεν έχει νόημα να συνεχιστεί, πως θα το χειριστείς; Εσύ συνεχίζεις σαν να μην έγινε κάτι και θα αφήσεις τον transaction manager να τα κανόνισει όλα; Όχι πως δεν δουλεύει έτσι αλλά δεν και ο καλύτερος τρόπος.

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  08-06-2005, 10:50 2573 σε απάντηση της 2566

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Σωστή παρατήρηση! Παρέλειψα να πω πως όλη η συλλογιστική βασιζόταν στο οτι υπάρχει παντού χειρισμός exceptions και πέρασμα των exceptions στο πατρικό component για να αποφασίσει τι γίνεται.

    Μια και το έθιξες όμως, γιατί να μην αφήσεις (υποθετικά) τον transaction manager να τα κανονίσει όλα; Εγώ καταλαβαίνω οτι απλα το πατρικό component μπορεί να έχει και άλλες κλήσεις τις οποίες θα αναγκαστεί να κάνει ακόμα και αν στην πρωτη κλήση έχει γίνει abort το transaction. Υπάρχει κάποια άλλη παρενέργεια εκτός από αυτήν;


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  08-06-2005, 22:47 2585 σε απάντηση της 2573

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Σωστά, ο transaction manager δεν θα αφήσει τίποτα να περάσει, αλλά θα είναι κάπως περίεργο ότι όλα τελιώνουν κανονικά, και τίποτα να μην γίνει; Το μόνο κακό είναι ότι δεν είναι και το "κομψότερο" πράγμα όσο έχει να κάνει με τα resources.

    Παρενέργεια δεν υπάρχει... Smile

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  21-06-2005, 12:00 2948 σε απάντηση της 2030

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Houston we have a problem ....

    Τρία classes ..

    Το ένα κάνει ένα write σε πίνακα της Sybase :

    Imports System.EnterpriseServices

    Imports iAnywhere.Data.AsaClient

    Public Interface ISybaseCall

    Sub WriteToSybase(ByVal SybaseConnectionString As String)

    End Interface

    <Description("Transactional Sybase Object"), _

    Transaction(TransactionOption.Supported), _

    Synchronization(SynchronizationOption.Required)> _

    Public Class Sybase

    Inherits ServicedComponent

    Implements ISybaseCall

    <Description("Write to Sybase Server")> _

    Public Sub WriteToSybase(ByVal SybaseConnectionString As String) Implements ISybaseCall.WriteToSybase

    Dim MyCon As New AsaConnection(SybaseConnectionString)

    Dim MyCom As New AsaCommand("INSERT INTO SYTEST(Des) Values('SybaseWriteTest')", MyCon)

    Try

    MyCon.Open()

    MyCom.ExecuteNonQuery()

    Catch ex As Exception

    Throw ex

    Finally

    MyCon.Dispose()

    MyCom.Dispose()

    End Try

    End Sub

    End Class


    Το δεύτερο σε πίνακα στον SQL Server :

    Imports System.EnterpriseServices

    Imports System.Data.SqlClient

    Public Interface ISqlServerCall

    Sub WriteToSqlServer(ByVal SINPServerConnectionString As String)

    End Interface

    <Description("Transactional SQL Object"), _

    Transaction(TransactionOption.Supported), _

    Synchronization(SynchronizationOption.Required)> _

    Public Class sqlserver

    Inherits ServicedComponent

    Implements ISqlServerCall

    <Description("Write to Sql Server")> _

    Public Sub WriteToSqlServer(ByVal SQLServerConnectionString As String) Implements ISqlServerCall.WriteToSqlServer

    Dim MyCon As New SqlConnection(SQLServerConnectionString)

    Dim MyCom As New SqlCommand("INSERT INTO tblSqlTest(Des) Values('SQLWriteTest')", MyCon)

    Try

    MyCon.Open()

    MyCom.ExecuteNonQuery()

    Catch ex As Exception

    Throw ex

    Finally

    MyCon.Dispose()

    MyCom.Dispose()

    End Try

    End Sub

    End Class


    Το τρίτο απλά κάνει το coordination :

    Imports System.EnterpriseServices

    Public Interface IDistributed

    Sub WriteToBothDatabases(ByVal SINPServerConnectionString As String, _

    ByVal SybaseConnectionString As String)

    End Interface

    <Description("Coordinates a distributed transaction"), _

    Transaction(TransactionOption.Required), _

    Synchronization(SynchronizationOption.Required)> _

    Public Class Distributed

    Inherits ServicedComponent

    Implements IDistributed

    <Description("Write to both Servers"), _

    AutoComplete(False)> _

    Public Sub WriteToBothDatabases(ByVal InSQLServerConnectionString As String, ByVal InSybaseConnectionString As String) Implements IDistributed.WriteToBothDatabases

    Dim MySqlOb As sqlserver

    Dim MySybaseOb As Sybase

    Try

    MySqlOb = New sqlserver

    With MySqlOb

    .WriteToSqlServer(InSQLServerConnectionString)

    End With

    MySybaseOb = New Sybase

    With MySybaseOb

    .WriteToSybase(InSybaseConnectionString)

    End With

    ContextUtil.SetAbort()

    Catch ex As Exception

    ContextUtil.SetAbort()

    Throw ex

    Finally

    MySqlOb.Dispose()

    MySybaseOb.Dispose()

    End Try

    End Sub

    End Class


    To ContextId είναι το ίδιο, το TransactionId είναι το ίδιο ...
    But ...
    Η Sybase δεν κάνει Rollback ενώ ο SQL Server το κάνει κανονικότατα ....




    Πάνος Αβραμίδης
  •  21-06-2005, 16:24 2965 σε απάντηση της 2948

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Είσαι βέβαιος ότι είναι DTC-compatible;

    Ψάχνοντας στο site www.iAnywhere.com δεν είδα πουθενά να μιλάει για δυνατότητα distributed transactions...

    Άρης
    Aris
  •  21-06-2005, 17:00 2967 σε απάντηση της 2030

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Δεν το ξέρω Άρη ...
    Αλλά προφανώς έχεις δίκιο ...
    Το version που έχω είναι :
    Adaptive Server Anywhere 9.0.0.1108
    Πάνος Αβραμίδης
  •  21-06-2005, 18:41 2977 σε απάντηση της 2030

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Άρη άκυρο βρήκα το εξής σχόλιο για την version 7 (οπότε δεν νομίζω να το έκοψαν στην 9):

    Version 7.0.0

    1. Unloading result sets. The new UNLOAD SQL statement makes possible the unloading of query result set into a comma-delimited text file.

    2. Distributed transactions and three-tired computing. Distributed transactions include operations on more than one server in a single transaction. A transaction server controls the commit and rollback behavior of distributed transactions.

    In this release, Adaptive Server Anywhere can participate in distributed transactions coordinated by the Microsoft Distributed Transaction Coordinator (DTC). Products such as Sybase Application Server and Microsoft Transaction Server can use DTC for the coordination of transaction, so DTC support enables Adaptive Server Anywhere to participate in three-tired computing with these products


    Δείτε όλο το άρθρο :
    http://www.ispirer.com/doc/sqlways38/Output/SQLWays-1-186.html


    Πάνος Αβραμίδης
  •  21-06-2005, 19:04 2978 σε απάντηση της 2030

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Θα σκάσω !!! υπάρχει έτοιμο component :


    OpenX for Sybase ASE/ASA 2.0
    Publisher : DataSphere
    Date added : 2002-11-11
    Rating : no review
    File size : 410 KB
    Language : English
    License : Demo
    Price : $299
    Limitations : N/A
    OS : WinNT 3.x,NT 4.x,2000
    Requirements : No special requirements
      

    OpenX is a multi level software component for developing multitier enterprise applications that require access to relational database management systems locally or across Intranets or the Internet. At present, OpenX is a COM/COM+ component and is fully compatible with ASP. Its low-level interface offers data access optimizations and access to database-specific features. OpenX works with SQL Server, Oracle, Sybase, DB2, Informix, InterBase, Centura SQLBase, and 



    Τι κάνω λάθος ρε παιδιά ???


    Πάνος Αβραμίδης
  •  21-06-2005, 20:27 2982 σε απάντηση της 2978

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Παναγιώτη μπορείς να εξακριβώσεις ποια έκδοση έχεις;

    Στην Enterprise έκδοση ο Adaptive Server υποστηρίζει DTC. Όχι όμως, ο Adaptive Server®Anywhere Desktop Runtime Edition (
    δες το ReadMe).

    Όντως μέσα στο "
    Adaptive Server Anywhere Programming Guide" δεν αναφέρεται κάτι για DTC Support. Πιθανώς τρίτοι vendors έχουν φτιάξει provider συμβατούς με DTC. Ίσως τέτοιος είναι αυτός που είδες...


    George J.

    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  22-06-2005, 11:01 2991 σε απάντηση της 2982

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Δάσκαλε καλημέρα !!!
    Έχω κατεβάσει το SQL Anywhere Studio (developer edition evaluation)
    Στο συγκεκριμένο περιλαμβάνονται τα εξής components :
    1) Adaptive Server Anywhere DBMS(Client + Server version)
    2) Adaptive Server Anywhere Personal Database with Synchronization
    3) Adaptive Server Anywhere Ultra Lite edition
    4) jConnect 5.5
    5) Cybase Central
    6) Physical Architect (evaluation copy)
    7) Info Maker (evaluation copy)

    Υποθέτω ότι o Personal Server Sample (9.0.0.1108) χρησιμοποιεί τον Adaptive Server Anywhere Desktop Runtime Edition.

    Το δοκίμασα και με τον Network Server Sample (9.0.0.1108) αλλά δεν έγινε τίποτα ...

    Γενικότερα μην εκφράσω τη γνώμη μου για τη Sybase και το documentation τους ... Το κακό είναι ότι πρέπει να τη χρησιμοποιήσω ...




    Πάνος Αβραμίδης
  •  28-06-2005, 11:58 3147 σε απάντηση της 2030

    Re: COM + 1.5 Distributed transaction problem (Sybase)

    Ότι καταλάβατε ... 
    το guide βέβαια αναφέρεται στην έκδοση 9.0.2  :

    Hi Panos,

    ASA includes a .NET Data Provider that will allow you to create database-driven applications written with any .NET language.

    ASA supports DTC (Distributed Transaction Coordinator).  For complete details, please look at the online help under:

            ASA Programming Guide, Three-Tier Computing and Distributed Transactions.

    The online help can be downloaded from the Web the same way you downloaded the eval version.  Alternatively, you can view it via Web browser from at:

    http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0902/en/html/index.html

    Hope this helps.
    Helen Bao
    iAnywhere Solutions Inc.



    "Panos Avramedes"

    06/22/2005 02:51 AM

    To
    <[email protected]>
    cc
    Subject
    ASA Personal Server Distributed transaction problem





    Dear Sir/Madame,
    I have downloaded and installed ASA (Database Engine Version 9.0.0.1108) trial version .
    Moreover I am currently working on the .Net platform and in specific I am in need to use serviced components
    In order to complete distributed transactions tasks.
    Do you offer two-face commit support for this version of ASA?
    Is ASA, DTC compatible ?
     
    Panos Avramedes, 
     


    Πάνος Αβραμίδης
Σελίδα 2 από 2 (26 εγγραφές)   < 1 2
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems