on 07-26-2019 6:59 AM
Hi All,
I have come across a requirement where I need to integrate with AWS SQS (using extended library), which basically provides an option to store payloads larger than 256 KB on SQS, by actually storing the payload on S3 and then placing a reference of it on the SQS. If the AWS Java library for SQS extended function is used, this process is transparent to both the system writing on SQS or reading from it. When reading, you only connect to SQS and ask it for the payload and the library returns you the whole payload, whether it is stored on SQS or S3. Similarly when writing to it, you connect to the SQS with your configuration details (along with the S3 connection parameters) and ask the library to place the message and the rest it transparent. A working examples of this is already provided here:
Now, we do have Advantco adapter in our landscape, however usage of SQS extended library is unfortunately not yet supported in the adapter. Hence, I need to go down the path of custom development. Options for both scenarios, I have thought are below:
I have already done a proof of concept on this and I think it will work for my requirement, but would like to see if someone has better options or lessons learnt in implementing something similar. Looking forward to your inputs.
Regards,
Sanjeev
Hi Sanjeev
While Advantco might not have that option by now KaTe's adapter has it as standard feature
http://en.kate-group.de/produkte-intro/aws-adapter-for-sap-po-and-sap-pi/
With best regards
Sebastian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For writing to queue –> Using receiver Java proxy to write to the SQS queue using AWS library
For this point, did you try using java map to create request using AWS library and post it using REST adapter?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Muniyappan,
Good suggestion, one of my requirements is to handle payloads larger than 256k, which are only supported on SQS queues using extended library (link) and I haven't found a way to do this using java map. Would appreciate if you have any pointers on documentation to handle it without the AWS provided library.
Regards,
Sanjeev
Hi Sanjeev,
It would be good idea to use AWS libraries. It will make your job easy. You don't have to avoid libraries.
I have not worked on Amazon SQS, but worked on S3 Integration.
Interaction between PO and Amazon SQS can be done using Adapter or using java code. Using adapter provides more benefits like logging, configuration etc..
For example, you can comment this code and send the message from adapter since at this level have required url and request message.
final SendMessageRequest myMessageRequest =
new SendMessageRequest(myQueueUrl, myLongString);
sqsExtended.sendMessage(myMessageRequest);
System.out.println("Sent the message.");<br>
If you are achieving this requirement using only java code like java proxy, then take care of making urls dynamic so that you can have different values in for DEV, QA and PROD and logging
User | Count |
---|---|
84 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.