How to use dcs-config proxy

Dear experts,

I have questions for o2-dcs-config-proxy.
I refer to the following README.md file AliceO2/README.md at dev · AliceO2Group/AliceO2 · GitHub

To use the workflow, the address=tcp://127.0.0.1:5556 should be set.
Is the address corresponding to DCS server address?
The option “ rateLogging=1” is also needed for the workflow.
Does it mean that trying to access DCS server every one second?

When I used the workflow, I keep getting the following message. Is it working correctly?

[17510:dcs-config-proxy]: [16:28:40][INFO] ackChan[0]: in: 0 (0 MB) out: 0 (0 MB)
[17510:dcs-config-proxy]: [16:28:40][INFO] dcs-config-proxy[0]: in: 0 (0 MB) out: 0 (0 MB)
[17510:dcs-config-proxy]: [16:28:41][INFO] ackChan[0]: in: 0 (0 MB) out: 0 (0 MB)
[17510:dcs-config-proxy]: [16:28:41][INFO] dcs-config-proxy[0]: in: 0 (0 MB) out: 0 (0 MB)
[17510:dcs-config-proxy]: [16:28:42][INFO] ackChan[0]: in: 0 (0 MB) out: 0 (0 MB)

Satoshi

Hi,

Yes, this is the port of the server to which we subscribed during the test, it may change. The server sends the files only when the DCS team needs to send something to O2, it is not a periodic communication. The test should be arranged with DCs people. The logging rate does not depend on the communications rate.

Cheers
Rubeb

Hi Ruben,

Thank you for your reply.
I have a responsibility for the CCDB <—> DCS connection.
Of course, we are discussing what we should send to CCDB from DCS, but we would like to understand the tool to do it.
So I am working on it.

I do several tests related to CCDB with the local server setup explained on the following page (Local CCDB/QC repository - Google Docs).
Now, I would like to check how to send objects to CCDB from DCS with the dummy DCS config file.
Do you know how to do it?
If you know the best reference detector and document, please let me know.

Satoshi

Hi Satoshi,

You can test it locally, before arranging a real test with DCS server, using the code from
https://cernbox.cern.ch/index.php/s/fuaTlK9t7GyGAsa

You will need to install cppzmq (via alidist). Just change the dcssend.cpp:38 from

 std::string filename = "TOFFEElight.20210108.172639.8000";

to the the name of the file you need to send and compile it. Then, run 1st in one terminal the test.sh and in another the dcssend.

Cheers,
Ruben

Dear Ruben,

Thanks a lot for your support!

I succeeded to install cppzmq with the pull request #3048 in alidist.
After that, I modified the codes in your cern box, but I noticed that “client.cpp” is not put in the cern box. Is it normal?

For the moment, I tried to use dcssend command after compiling dcssend.cpp I keep receiving the following

send trial 0
waiting for answer 0

send trial 1
waiting for answer 1

send trial 2
waiting for answer 2

Is it correct behavior?

Satoshi

Hi @syano

I attach the client.cpp (1.2 KB) but you don’t need it: it does that same what dcs-config-proxy does, but via cppzmq means.
The output of the dcssender is correct but, apparently, the proxy (is it running) does not receive the file. Make sure that the channel/port settings are the same for both sides.

Cheers,
Ruben

Dear Ruben,

Thank you for your quick response.

I checked the several variables in both dcssend and o2-dcs-config-proxy side, and I got following messages,

In dcssend side:

send trial 0
waiting for answer 0
ans:
send trial 1
waiting for answer 1
ans:
send trial 2
waiting for answer 2
ans:
send trial 3
waiting for answer 3
ans:
send trial 4
waiting for answer 4
ans:

In o2-dcs-config-proxy side,
[39454:dcs-config-proxy]: [15:50:50][INFO] received file MFT_Dummy_Config_File.62c5f1a0-fefe-11eb-8c08-7f0000013346 of size 2048
[39454:dcs-config-proxy]: [15:50:50][INFO] Sending acknowledgment OK
[39454:dcs-config-proxy]: [15:50:50][INFO] Sent DPL message and acknowledgment for file MFT_Dummy_Config_File.62c5f1a0-fefe-11eb-8c08-7f0000013346
[39455:dcs-config-consumer-MFT]: [15:50:50][INFO] got input file MFT_Dummy_Config_File.62c5f1a0-fefe-11eb-8c08-7f0000013346 of size 2048

I think it succeeded to send DCS config file (for the moment mimic file) and to receive it by o2-dcs-config-proxy!
However, the dcssend doesn’t receive the answer from the proxy in spite that the proxy sends back the acknowledgment…

Satoshi

Hi @syano

Indeed, it looks like the acknowledgment is not received by the sender. Are you sure the ack. ports are consistent?

Cheers,
Ruben

Dear Ruben,

Thanks for your help.

I set the ack. port 44773 in o2-dcs-config-proxy with
–acknowlege-to “type=push,method=connect,address=tcp://127.0.0.1:44773,rateLogging=1,transport=zeromq”
Also, I set the the answer receiving port 44773 with,
int pub_port = 44772, col_port = 44773;
collector.connect(“tcp://127.0.0.1:” + std::to_string(col_port));

It looks they are consistent…

Satoshi

Hi @syano

I think it is better to open a PR with your code, the acknowledgment was tested and working, I can look on this later, when will be back from vacation.

Cheers
Ruben