Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gemtalk/gemconnectforrabbitmq
Connects GemStone/64 to RabbitMQ via librabbitmq
https://github.com/gemtalk/gemconnectforrabbitmq
Last synced: about 15 hours ago
JSON representation
Connects GemStone/64 to RabbitMQ via librabbitmq
- Host: GitHub
- URL: https://github.com/gemtalk/gemconnectforrabbitmq
- Owner: GemTalk
- License: mit
- Created: 2022-04-13T17:23:03.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-27T00:08:13.000Z (9 months ago)
- Last Synced: 2024-02-27T01:26:38.121Z (9 months ago)
- Language: JavaScript
- Size: 237 KB
- Stars: 0
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GemConnectForRabbitMQ (GCFRMQ)
Connect GemStone/64 to RabbitMQ via FFI to librabbitmq## Prerequisites
1. GemStone/64 version 3.6.4 or later.
2. librabbitmq client library installed (librabbitmq4 package)## Installation
1. Find the RabbitMQ client shared library on your system. The file name is usually librabbitmq.so.4 so and it should be in /usr/lib or /usr/local/lib.
2. Set the envirnoment variable RABBITMQ_LIB to reference the ***full path*** to the RabbitMQ shared library (this is only needed during installation. Once initialized, GCFRMQ remembers where this library is located).
```
export RABBITMQ_LIB=/usr/lib/librabbitmq.so.4
```3. cd to the src directory
```
cd src
```
4. Login to topaz GemStone as SystemUser
```
________________________________________________________________________________
| GemStone/S64 Object-Oriented Data Management System |
| Copyright (C) GemTalk Systems 1986-2022 |
| All rights reserved. |
| Covered by U.S Patents: |
| 6,256,637 Transactional virtual machine architecture (1998-2018) |
| 6,360,219 Object queues with concurrent updating (1998-2018) |
| 6,567,905 Generational Garbage Collector (2001-2021) |
| 6,681,226 Selective Pessimistic Locking for a Concurrently Updateable |
| Database (2001-2021) |
+--------------------------------------------------------------------------------+
| PROGRAM: topaz, Linear GemStone Interface (Linked Session) |
| VERSION: 3.6.4, Fri Mar 18 13:37:47 2022 normg private build (branch 3.6.4) |
| COMMIT: 2022-03-18T13:23:23-07:00 5e6523f43f3213ec68e9821fe5b8f9ff42c90d85 |
| BUILT FOR: x86-64 (Linux) |
| RUNNING ON: 8-CPU moop x86_64 (Linux 4.15.0-147-generic #151-Ubuntu SMP Fri Jun|
| 18 19:21:19 UTC 2021) |
| PROCESSOR: 4-core Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (Kaby Lake-DT) |
| MEMORY: 64287 MB |
| PROCESS ID: 20675 DATE: 04/13/22 17:16:09 PDT (UTC -7:00) |
| USER IDS: REAL=normg (300) EFFECTIVE=normg (300) LOGIN=normg (300) |
| BUILD TYPE: SLOW |
+--------------------------------------------------------------------------------+
|________________________________________________________________________________|
Warning, executable configuration file not found
/moop3/users/normg/gcfrmq/src/gem.confReading initialization file /home/normg/.topazini
topaz> login
[Info]: LNK client/gem GCI levels = 36200/36200
ShrPcClientConnect got newClientId 9 newSlot 10
--- 04/13/22 17:16:10.826 PDT Login
[Info]: User ID: SystemUser
[Info]: Repository: norm
[Info]: Session ID: 5 login at 04/13/22 17:16:10.829 PDT
[Info]: GCI Client Host:
[Info]: Page server PID: -1
[Info]: using libicu version 58.2
[Info]: Loaded /export/moop3/users/normg/gs364/slow50/gs/product/lib/libicu.58.2.so
[Info]: Gave this process preference for OOM killer: wrote to /proc/20675/oom_score_adj value 250
[04/13/22 17:16:10.832 PDT]
gci login: currSession 1 linked session
successful login
topaz 1>
```5. Install the code.
Classes will be placed in a SymbolListDictionary called GemConnectForRabbitMq
Output goes to a file named GemConnectForRabbitMq.install.log
```
topaz>input install.topaz
```
If all goes well you will see an errorcout of 0 like this:
```
Successful commit
topaz 1 +> errorcount
0
topaz 1 +> output pop
```6. Optional: Install the Unit Tests
Classes will be placed in a SymbolListDictionary called GemConnectForRabbitMqTests
Output goes to a file named GemConnectForRabbitMqTests.install.log
```
topaz>input install.tests.topaz
```## Using GCFRMQ
Looks the class GsAmqpExample. There are many examples in class methods for both producers
and consumers.## Running the Test Suite
### Prerequisites
To run the tests, you must have a running RabbitMQ server available and know the following:
1. user id
2. password
3. hostnameTo run the TLS connection tests, RabbitMQ must be configured for TLS connections and
you also need these files, in addition to the items above:
1. x509 Certificate
2. Private key
3. x509 CA Certificate### Configuring the Test Suite
1. Ensure the test suite is installed (step 6 above).
2. Setup the RabbitMq non-TLS credentials by running this code as SystemUser, replacing the
userId, password, vhost and hostname arguments with those for your RabbitMq server:
```
GsAmqpConnectionTestCase
amqpUserId: 'userId' ;
password: 'password' ;
hostname: 'hostname' ;
vhost: '/'
```
3a. If you also want to run the TLS tests, provide the TLS certificate, private key
and CA certificate by running this code as SystemUser:```
GsAmqpTlsConnectionTestCase
caCertPath: '/path/to/ca-cert.pem' ;
certPath: '/path/to/cert.pem' ;
privateKey: '/path/to/privatekey.pem'
```
3b. OR to disable the TLS tests (which are enabled by default), run this code as SystemUser:
```
GsAmqpAbstractTestCase tlsTestsEnabled: false
```
4a. To run the tests:
```
GsAmqpAbstractTestCase run
```