Date   

Re: Documentation question on middleware bridge development

Keith Rudd
 

Classification: Public

Thanks Frank – very useful links.

 

From: Frank Quinn [mailto:fquinn.ni@...]
Sent: 13 September 2017 09:26
To: Keith Rudd <keith.rudd@...>
Cc: openmama-dev@...
Subject: Re: [Openmama-dev] Documentation question on middleware bridge development

 

Hi Keith,

 

Yeah there are some docs though I'm sure they could use a refresh:

 

 

Cheers,

Frank

 

On Wed, Sep 13, 2017 at 8:53 AM, Keith Rudd <keith.rudd@...> wrote:

Classification: Public

Does anyone know if there exists, where I could find, a general guide to OpenMAMA middleware bridge development?

 

I  know there are the examples provided to copy (which is how we’ve got started on this before), but some high-level general notes would be a useful introduction.

 

Regards,
Keith

____________________________________________________



Keith Rudd
Vice President | Lead Solution Architect - Market Data Engineering

Deutsche Bank AG, Filiale London
Global Technology
10 Upper Bank Street, E14 5GW London, United Kingdom
Tel. +44 20 754-53366
Mobile +44 7950687412
Email keith.rudd@...


 



---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.


_______________________________________________
Openmama-dev mailing list
Openmama-dev@...
https://lists.openmama.org/mailman/listinfo/openmama-dev

 



---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.


Re: Documentation question on middleware bridge development

Frank Quinn <fquinn.ni@...>
 

Hi Keith,

Yeah there are some docs though I'm sure they could use a refresh:


Cheers,
Frank

On Wed, Sep 13, 2017 at 8:53 AM, Keith Rudd <keith.rudd@...> wrote:

Classification: Public

Does anyone know if there exists, where I could find, a general guide to OpenMAMA middleware bridge development?

 

I  know there are the examples provided to copy (which is how we’ve got started on this before), but some high-level general notes would be a useful introduction.

 

Regards,
Keith

____________________________________________________



Keith Rudd
Vice President | Lead Solution Architect - Market Data Engineering

Deutsche Bank AG, Filiale London
Global Technology
10 Upper Bank Street, E14 5GW London, United Kingdom
Tel. +44 20 754-53366
Mobile +44 7950687412
Email keith.rudd@...


 



---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.

_______________________________________________
Openmama-dev mailing list
Openmama-dev@....org
https://lists.openmama.org/mailman/listinfo/openmama-dev



Documentation question on middleware bridge development

Keith Rudd
 

Classification: Public

Does anyone know if there exists, where I could find, a general guide to OpenMAMA middleware bridge development?

 

I  know there are the examples provided to copy (which is how we’ve got started on this before), but some high-level general notes would be a useful introduction.

 

Regards,
Keith

____________________________________________________



Keith Rudd
Vice President | Lead Solution Architect - Market Data Engineering

Deutsche Bank AG, Filiale London
Global Technology
10 Upper Bank Street, E14 5GW London, United Kingdom
Tel. +44 20 754-53366
Mobile +44 7950687412
Email keith.rudd@...


 



---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[noreply] Fixed crash with entitlement subscription (#327)
	mama/c_cpp/src/c/subscription.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #182
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[noreply] Modified MAMA default log level to NORMAL (#329)
	mama/c_cpp/src/c/log.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #181
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[noreply] MAMA: Moved background thread destroy to stop (#326)
	mama/c_cpp/src/c/mama.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #180
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[noreply] Reset plugins to null to avoid double free (#328)
	mama/c_cpp/src/c/plugin.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #179
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Still Failing)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] Fix leak in mamaMsg_detach (#309)
	mama/c_cpp/src/c/queue.c


Results for OpenMAMA_Snapshot_Windows CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Windows
  • Build Number: #173
  • Build Status: Still Failing
  • Build Warnings:
  • Total Amount of Tests: 34
  • Passed: 34
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] Fix leak in mamaMsg_detach (#309)
	mama/c_cpp/src/c/queue.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #178
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Failure)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] PLAT-1153: loadPlugins can realloc to provid for more plugins (#316)
	mama/c_cpp/src/c/plugin.c


Results for OpenMAMA_Snapshot_Windows CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Windows
  • Build Number: #172
  • Build Status: Failure
  • Build Warnings:
  • Total Amount of Tests: 34
  • Passed: 34
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] PLAT-1153: loadPlugins can realloc to provid for more plugins (#316)
	mama/c_cpp/src/c/plugin.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #177
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Open MAMA - streamlining the experience for potential adopters

Phelan, Nigel
 

Hi all

As some of you will be aware there have been discussions in the steering committee recently regarding how to simplify the process of getting up and running with Open MAMA.  Initial feedback suggests that a part of the problem is that the quick start guide is very much aimed at someone who wants to take the open source distribution and get it up and running as a stand-alone messaging platform.  That is clearly an important aspect, but personal experience from some committee members suggests that a lot of people are actually starting by trying to download Open MAMA and then prove that it really works with their incumbent market data platform.  We would like to try to make that experience more straightforward than it currently is.  To do that I am setting up a working group to try to improve things in this area.  This email is intended as a call for volunteers.  If you would like to participate, please drop me a line to indicate your interest.  There are two areas where people can contribute:

1)      Offering suggestions about how the instructions, or the software distribution, could be improved to allow prospective users to get up and running more quickly

2)      Offering to work on some of the items put forward above and contribute improvements to documentation, code or packaging (this may not be an option for some advisory group members, but suggestions for improvements from that community would still be valued)

Thanks in advance to anyone who feels able to offer help.

 

Nigel Phelan – Open MAMA project coordinator

 


Nigel Phelan | Corporate & Investment Bank | Market Data Services | J.P. Morgan

 

This message is confidential and subject to terms at: http://www.jpmorgan.com/emaildisclaimer including on confidentiality, legal privilege, viruses and monitoring of electronic messages. If you are not the intended recipient, please delete this message and notify the sender immediately. Any unauthorized use is strictly prohibited.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] PLAT 1146 Add MAMA Version to Log:  removed prev change, changed log
	mama/c_cpp/src/c/mama.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #176
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] [MAMA] thread-safe version of endpoint pool (#312)
	mama/c_cpp/src/c/bridge/qpid/endpointpool.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #175
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] Reset gPluginNo to 0 on shutdown, added unittest to test this. (#313)
	mama/c_cpp/src/c/plugin.c
	mama/c_cpp/src/gunittest/c/openclosetest.cpp


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #174
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1829
  • Passed: 1829
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Re: Questions about MamaStartCallback

Frank Quinn <fquinn@...>
 

Thanks Yury,

Yes that analysis and suggestion both sound correct. I just raised https://github.com/OpenMAMA/OpenMAMA/issues/319 for tracking so it will make it into the next release.

Cheers,
Frank


FRANK QUINN
Principal Engineer
Vela Trading Technologies

O. +44 289 568 0209 ext. 3592
fquinn@velatt.com

Adelaide Exchange Building, 2nd Floor, 24-26 Adelaide Street, Belfast, BT2 8GD
velatradingtech.com | @vela_tt

-----Original Message-----
From: Yury Batrakov [mailto:yury.batrakov@db.com]
Sent: 14 August 2017 13:21
To: openmama-users <openmama-users@lists.openmama.org>; openmama-dev <openmama-dev@lists.openmama.org>
Cc: Frank Quinn <fquinn@velatt.com>; Marc Alzina <marc.alzina@db.com>
Subject: Questions about MamaStartCallback

Classification: Public

Hi guys,

As everybody knows there is possibility to start MAMA bridge in background thread in C++ API: function Mama::startBackground (mamaBridge bridgeImpl, MamaStartCallback* cb) There are a couple of problems with this function though:
1. We can't ignore "MAMA startup finished" event setting the value for the second argument to nullptr - this can be fixed as a simple nullptr check in void MAMACALLTYPE stopCb (mama_status status, mamaBridge, void* closure) in mamacpp.cpp
2. There is race condition between thread calling Mama::stop and internal MAMA thread spawned by startBackground function. This race may lead to program crash.

Let me describe #2 - consider the following scenario:

We have a simple class MyMamaConnection

class MyMamaStartCallback : public MamaStartCallback {
void onStartComplete (Wombat::MamaStatus status) override {
// .... Some bridge specific callback code
}
};

class MyMamaConnection {
mamaBridge m_bridge;
MyMamaStartCallback m_callback;

MyMamaConnection() {
Mama::startBackground (m_bridge, &m_callback)
}

~MyMamaConnection() {
Mama::stop(m_bridge);
}
};

The crash occur in destructor because Mama::stop doesn't guarantee that no threads are still using m_callback pointer after this function exited. In our case MyMamaConnection's destructor destroys m_callback object while it is still in use by the thread created by Mama::startBackground.

Here are more details, file mama.c:

static void* mamaStartThread (void* closure) { ...
rval = mama_start (cb->mBridgeImpl); // Imagine user thread Thread_1 calling ~MyMamaConnection() from our example.

// Current thread may be suspended by OS at this point while Thread_1 continues its work and deletes the object pointed by closure ...

if (cb->mStopCallbackEx)

// cb->mClosure points to destroyed object.

cb->mStopCallbackEx (rval, cb->mBridgeImpl, cb->mClosure); ...
}

One of the possible solutions is to move this code from mama_close() to mama_stop():
// Get name of start background thread and destroy it
const char* threadName = wombatThread_getThreadName(middlewareLib->bridge->mStartBackgroundThread);
wombatThread_destroy (threadName);

Let me know if it's possible to have this fixed in the next release.


---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.

The information contained in this message may be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to this message and deleting it from your computer. Thank you. Vela Trading Technologies LLC


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[noreply] Fixed windows build issue for unit test (#317)
	common/c_cpp/src/gunittest/c/strutilstest.cpp
	common/c_cpp/src/gunittest/c/UnitTestCommonC.vcxproj


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #173
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1828
  • Passed: 1828
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Questions about MamaStartCallback

Yury Batrakov
 

Classification: Public

Hi guys,

As everybody knows there is possibility to start MAMA bridge in background thread in C++ API: function Mama::startBackground (mamaBridge bridgeImpl, MamaStartCallback* cb)
There are a couple of problems with this function though:
1. We can't ignore "MAMA startup finished" event setting the value for the second argument to nullptr - this can be fixed as a simple nullptr check in void MAMACALLTYPE stopCb (mama_status status, mamaBridge, void* closure) in mamacpp.cpp
2. There is race condition between thread calling Mama::stop and internal MAMA thread spawned by startBackground function. This race may lead to program crash.

Let me describe #2 - consider the following scenario:

We have a simple class MyMamaConnection

class MyMamaStartCallback : public MamaStartCallback {
void onStartComplete (Wombat::MamaStatus status) override {
// .... Some bridge specific callback code
}
};

class MyMamaConnection {
mamaBridge m_bridge;
MyMamaStartCallback m_callback;

MyMamaConnection() {
Mama::startBackground (m_bridge, &m_callback)
}

~MyMamaConnection() {
Mama::stop(m_bridge);
}
};

The crash occur in destructor because Mama::stop doesn't guarantee that no threads are still using m_callback pointer after this function exited. In our case MyMamaConnection's destructor destroys m_callback object while it is still in use by the thread created by Mama::startBackground.

Here are more details, file mama.c:

static void* mamaStartThread (void* closure)
{
...
rval = mama_start (cb->mBridgeImpl); // Imagine user thread Thread_1 calling ~MyMamaConnection() from our example.

// Current thread may be suspended by OS at this point while Thread_1 continues its work and deletes the object pointed by closure
...

if (cb->mStopCallbackEx)

// cb->mClosure points to destroyed object.

cb->mStopCallbackEx (rval, cb->mBridgeImpl, cb->mClosure);
...
}

One of the possible solutions is to move this code from mama_close() to mama_stop():
// Get name of start background thread and destroy it
const char* threadName = wombatThread_getThreadName(middlewareLib->bridge->mStartBackgroundThread);
wombatThread_destroy (threadName);

Let me know if it's possible to have this fixed in the next release.


---
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and delete this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.

Please refer to https://www.db.com/disclosures for additional EU corporate and regulatory disclosures and to http://www.db.com/unitedkingdom/content/privacy.htm for information about privacy.


Code change(s) just landed on origin/next (Successful)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] PLAT-1078: Extend support of environment variables (#302)
	common/c_cpp/src/c/properties.l
	common/c_cpp/src/gunittest/c/Makefile.sample
	common/c_cpp/src/c/propertyinternal.h
	common/c_cpp/src/gunittest/c/SConscript
	common/c_cpp/src/c/property.c
	common/c_cpp/src/gunittest/c/strutilstest.cpp
	common/c_cpp/src/c/wombat/strutils.h
	common/c_cpp/src/c/strutils.c


Results for OpenMAMA_Snapshot_Linux CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Linux
  • Build Number: #172
  • Build Status: Successful
  • Build Warnings: 0
  • Total Amount of Tests: 1828
  • Passed: 1828
  • Failed: 0
  • Skipped / Disabled: 0

You may also check CI console output to view the full results.


Code change(s) just landed on origin/next (Failure)

jenkins@...
 

Some changes have just been added to the origin/next branch!

[fquinn.ni] PLAT-1078: Extend support of environment variables (#302)
	common/c_cpp/src/c/property.c
	common/c_cpp/src/c/strutils.c
	common/c_cpp/src/gunittest/c/Makefile.sample
	common/c_cpp/src/c/properties.l
	common/c_cpp/src/gunittest/c/strutilstest.cpp
	common/c_cpp/src/c/propertyinternal.h
	common/c_cpp/src/gunittest/c/SConscript
	common/c_cpp/src/c/wombat/strutils.h


Results for OpenMAMA_Snapshot_Windows CI run with latest changes:

  • CI Project Name: OpenMAMA_Snapshot_Windows
  • Build Number: #167
  • Build Status: Failure
  • Build Warnings:
  • Total Amount of Tests:
  • Passed:
  • Failed:
  • Skipped / Disabled:

You may also check CI console output to view the full results.

221 - 240 of 2300