hallo, ich habe zur Zeit folgendes Problem: ich muss mehrere AB_BANKING handles gleichzeitig geöffnet halten um gleichzeit auf verschiedene Konten zugreifen zu können. Soweit ich das rausbekommen habe is das kein Problem, solange ich mehrere meiner anwendungen ausführe, jede mit anderem appName und eigenem config-verzeichnis und jede in ihrem eigenen speicherkontext (und daher jede mit einer eigenen instanz vonder libaqbanking.so und libgwen.so). Da ich aber threading verwenden will, habe ich das problem das AB_Banking_Init() fehlschlägt, als ausgabe erhalte ich dann:
3:2007/01/15 08-13-57:gwen(2289):pathmanager.c: 83: Path "aqbanking/sysconfdir" already exists 3:2007/01/15 08-13-57:gwen(2289):pathmanager.c: 83: Path "aqbanking/datadir" already exists 3:2007/01/15 08-13-57:gwen(2289):plugin.c: 480: Plugin type "bankinfo" already registered 3:2007/01/15 08-13-57:aqbanking(2289):banking.c: 1699: Could not register bankinfo plugin manager 3:2007/01/15 08-13-57:aqbanking(2289):banking.c: 2024: AqBanking not initialized! Das prob trifft genau dann auf, wenn ein Thread ein AB_BANKING Handle bereits geöffnet hat. Hab ein wenig im Sourcecode gegraben und festgestellt dass das Problem dadurch entsteht, das in gwens base/pathmanager.c die variable gwen__paths global deklariert is. Beim aufruf des ersten Threads funktioniert das AB_Banking_Init, versucht das aber der nächste thread laufen die GWEN_PathManager_* aufrufe aus AB_Banking_Init gegen die global deklarierte gwen__paths, daher die fehlermeldungen das die pfade schon registriert sind. Da die pfade in /usr/lib/aqbanking/* für den user ja sowieso read-only sind steht doch einer parallen öffnung imho nichts im wege. Da ich multi-threading in meiner anwendung zwingend brauche und ich denke mal dass das im allgemeinen nützlich wäre (z.B abfrage mehrer umsatzdaten von verschiedenen konten und banken gleichzeitig vor allem aus performance gründen) muss ich die sources wohl dahingehend abändern. Bevor ich nun ein riesen code review starte um die machbarkeit überhaupt einzuschätzen , wollte ich wissen ob hier jemand schon sich damit beschäftigt hat bzw weiss wieviel aufwand das wird. Natürlich könnte ich auch als workaround in meiner anwendung ein locking einbauen das überwacht dass je nur ein Thread ein AB_BANKING handle offen halten darf, aber das ist mir zu unsauber bei steigender kontenzahl, bzw wenn ein bankserver mal nicht zu potte kommt. Die angekündigten änderungen am aqbanking hören sich ja sehr vielversrechend an, wie schauts dort gegenwärtig aus mit multi-threading? Wann ist mit einem ersten vorab release zu rechnen, bzw gibts ein CVS/SVN der schon brauchbar ist zur kontostands/transaktionsabfrage? Lohnt sich das überhaupt noch an 2.2.4 und gwen 2.5 rumzubasteln? Viele Grüße, Timo -- Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Aqbanking-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/aqbanking-devel
