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

Reply via email to