[Javalist] DLL-beli C++ asynchronous callback használata JAVA-ból.

Molnár Miklós timortin at gmail.com
2014. Júl. 19., Szo, 09:34:46 CEST


Sziasztok,

A tárgybeli (nekem nagyon nehéz) cuccot dobta a gép/sors. Nagyon szeretném
megoldani, ha bárki, bármivel tudna segíteni, nagy örömet szerezne.

Az előzmény/sztori a következő:

* Informatica aranyárban mért ETL-szörnyeteget kellene működése közben
monitoroznom (custom programmal).

* Ez C/C++-ból triviális (készen van, ha csökevényesen is), de JAVA-ból
kellene valami framework-szerűséget csinálni.

* Az Informatica Server a Workflow-k, Task-ok végrehajtásáról
értelemszerűen egy részletes event-színtű log-ot generál.

* Ehhez hivatalos publikus interface-n keresztül hozzá lehet férni: úgy
hívják Informatica Development Platform.

* Adnak egy rakat dll-t (lib), és egy nagyon szűkkeblűen mért
(értelmezésemben gyakorlatilag használhatatlan) doksit.

* A gyári dll-ekhez hivatalosan C/C++-on és JAVA-n keresztül lehet
hozzáférni (csak a szűkebb JAVA-hoz van javadoc, a bővebb C/C++-hoz semmi
nincs).

* A JAVA-s hozzáférést úgy oldották meg igen trükkösen, hogy a C/C++ DLL-ek
jelentősen szűkített hívását becsomagolták egy JavaLMApi.dll-be (azaz
számomra nem hozzáférhető). Majd erre JavaLMApi.dll használatra írtak
triviális JAVA-osztályokat (ami ugye hiába nem obfuszkáltak).

* Na most - hát persze hogy - nekem olyan aszinkron callback
(INFA_LMMonitorServerA) kéne a C/C++ pmlmapi.dll-ből, amit C/C++-ból
könnyen lehet használni, de mivel a JAVA-oldalra nincs kivezetve, azaz
közvetlenül kéne a C++ DLL-ből használnom JAVA-ban.

A header-ben ez van a kérdéses aszinkron callback-re.
PMLM_API_EXTSPEC INFA_API_STATUS
INFA_LMMonitorServerA( INFA_UINT32 connectionId,
                       struct INFA_LMAPI_MONITOR_SERVER_REQUEST_PARAMS
*request,
                       void *clientContext,
                       INFA_UINT32 *requestId
                     );

Ami megvan, hogy JNA/JNI-vel hogyan tudom használni a kérdéses dll-t.Ami
nincs meg az a naplózó aszinkron callback működésre bírása. Egyébként már
az sokat segítene, ha annyi kiderülne mission impossible-e amit akarok. ;)
Szerintem (érzésre) nem, de mit lehet tudni.

MM

PS: Egyébként meg azt gondolom szégyellje magát az Informatica, hogy
rettenet mennyiségű pénzért cserébe, ilyen dokumentálatlan, félig
implementált szutyokkal szúrja ki felhasználói szemét. ;)
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20140719/31e2cf26/attachment.html>


További információk a(z) Javalist levelezőlistáról