Get/set message Queue ID in PI 7.1 Adapter module
Hello,
I have a special requirment to get and set message Queue ID in PI 7.1 adapter module.
I tried to use the method setConversationID for the Message Class, but this doest seem to available any more.
Any pointers to which class and method can be used.
Thanks in advance
Regards,
Abhishek
Hi, try [setSequenceId|http://help.sap.com/javadocs/pi/pi711sp03/com/sap/engine/interfaces/messaging/api/Message.html#setSequenceId(java.lang.String)]. Maybe you have to use setDeliverySemantics before in order to set EOIO.
regards, Martin
Similar Messages
-
I'm getting a message "An error occurred when attempting to change modules"
Hi, I have just loaded LR CC on to my new iMac & I'm getting a message "An error occurred when attempting to change modules" I have used a Catalog from my Macbook stored on an external hard drive & there are no images, no panels & i can't access LR preferences, please help as i have images to process for clients! PLEASE HELP...
I have tried to look for download as it says but no down load, so i went to step 2 but i don't understand & can't find the files they are asking me to change. I am not super good with macs or any computer so I'm finding it hard to follow there instructions e.g. Preference file and other file locations | Lightroom 5.x I'm not sure if I'm looking for the rite areas of the iMac & i can't find what they are asking.
-
Get/set message interface name in adapter module
Hello,
From an adapter module, I'd like to get or even set the Message Interface name of the message that is handed over to the function "process" of the adapter module.
I've got two context's, sessioncontext and modulecontext. With both contexts, you can get values from that context. I'm not sure which context has the message interface name of the message currently being processed, and I'm also not sure what that value is called (moduleContext.getContextData("name");).
The reason for this is that sometimes you'd like to do something different depending on the type of message being processed.
If anyone knows how to do this, I'd be glad to hear.
Thanks in advance for any advice!
Greetings, Walter.Hi Walter,
It is fairly easy to get the interface name. When you have extracted the XIMessage there is a parameter, which allows you get the Action, where you can get the interface name.
I have tried to change the interface name. You need to create a new message an copy the content from the old message over to this. This is a little tricky and I'm not able to get any code samples for you.
/daniel -
Create multiple messages in adapter module
Hi!
I've the problem to solve the following scenario: Mail (1) -> XI -> IDocs (1..n)
Since for IDocs message split is not supported and I don't want to use a BPM, is it possible to create different xi-messages in an adapter module which processes the mail?
Therefore I want to make the message split directly on the source: the adapter module.
Best regards,
DanielDaniel,
There is no need for a BPM and for an Adapter Module split.
1. Create an XSD out of your IDOC strcuutre and change the occurence of the IDOC element to 0 to unbounded.
2. Import this XSD and use this in your Message Mapping as the target Message Type. For every IDOC to be created in your Target , you will need to create an IDOC tag in the mapping. Each IDOC tag indiactes one IDOC.
3. In your Interface Mapping, DO NOT CREATE a separate Interface for the IDOC, but use the IDOC itself as the Message Interface and select the mapping with the XSD as the target.
Configuration will be as usual.
Regards,
Bhavesh -
Converting INVOIC02 idoc to EDIFACT INVOIC message (Using Adapter Module
Hi Friends,
We are sending customer idoc (INVOIC02) from R/3 to external system through PI. We want to generate EDIFACT output file (message type : INVOIC).
Is it possible to convert IDoc message to EDI file format through java adapter module ? Will adapter module support this without using Seeburger adapter ?
kindly clarify, friends.
Kind regards,
Jegathees P.There is an alternative to Seeburger.
DataDirect also has complete EDI-XML conversion by way of deploying a module which is called from an adapter. The range of parameters with the conversion is also quite extensive, allowing tolerance for partners who may have included non-standard EDI qualifiers and such. The XML tags make for easier mapping. StylusStudio XML Suite includes the EDI<->XML adapter so you can try the conversions each way directly in that package. If you are happy with it, you need to then purchase the package from DataDirect. We did this and implemented EDI for X12 and EDIfact, including Orders and Invoices and some other messages. The communications part was not included. We wrote the EDI files and used a separate process to actually send and receive the files. The IDoc <-> EDI mapping was done using the normal graphical mapping of SAP PI. The Stylus Studio package includes the functionality to generate the XSD, which we imported to SAP PI. -
Message Queue Blocking / MSGMNI Setting
Hi All,
Firstly, many thanks to all that can assists. I am currently getting Message Queue
Blocking messages in my ULOG files in my Tuxedo Application. (Tux ver 7.1 in Unix).
I am not sure what is causing this, but started to look into the Tux Config (UBB.MP)
and System message queue setting. Detailed as follows:
1)
Listed below is the system message queue setting:
set msgsys:msginfo_msgmni=2000
set msgsys:msginfo_msgmax=128000
set msgsys:msginfo_msgmnb=100000
set msgsys:msginfo_msgssz=256
set msgsys:msginfo_msgseg=25088
set msgsys:msginfo_msgtql=1550
set msgsys:msginfo_msgmap=1000
According to the BEA site, the MSGMNI is determined by this formula:
MSGMNI = MAXACCESSERS + 7 + (no. of servers with REPLYQ) + (no. MSSQ sets) - (no.
of servers with MSSQ sets)
The following is my current Tux. Config (UBB.MP) is set as :
- MAXACCESSERS = 2300
- Each servers (4 types in total) has its own REPLYQ and RQADDR.
- The same type of servers are set the same across 4 application servers.
Hence, my MSGMNI should be a minimum 2339 (ie. MSGMNI = 2300 + 16 + 16 - 0 = 2339).
But my current MSGMNI is 2000.
Would this contribute to my Message Queue Blocking?
Is my understanding correct and is this something I should change to avoid Message
Queue Blocking? Any helps and advice is much appreciated.Malcolm,
Your information and explanations behind these error messages are very useful.
It allow me to further understand Tuxedo internal processing and at the same time
give me a chance to start analysing these fields.
I am reluctant to ask further questions at the mean time. I will use your suggestions
as a starting point.
I will certainly keep you posted of the outcome when I have made the changes in
my UBB config and machine parameters.
Many thanks with your help/explanations Malcolm. It helps alot!
Cheers.
David.
"Malcolm Freeman" <[email protected]> wrote:
>
Hi David,
The MSGTQL reference you give (Solution S-00488) refers to the BEA MessageQ
product
and is not relevant to Tuxedo.
The error messages indicate that the queue buildup is probably due to
a restartable
server failing. What happens is this:
When a restartable server fails its IPC queue remains in place and continues
to
receive messages (which will be processed when the server restarts).
Depending
on the time taken to restart, the queue could become full and unable
to receive
any more messages, and this is probably why you got the message CMDTUX_CAT:1380
indicating that the BRIDGE process was unable to put a message on the
server's
queue.
A server is only restarted when the BBL does a SANITYSCAN check. If,
for example,
your SANITYSCAN interval is 300 seconds and your server fails immediately
after
the previous scan, then there will be a delay of almost 5 minutes before
the failure
is detected and the server restarted - plenty of time for the queue to
fill up.
There are a few things you could do:
The key thing would be to find out why the server is failing, and fix
the problem.
If this is not possible immediately, consider some of the other ideas
below.
Have several servers form an MSSQ to service this queue; then if one
fails the
others will continue processing the messages while the failed server
restarts
(this assumes, of course, that your application does not require the
messages
to be processed in strict order through the server).
Reduce the SANITYSCAN interval (but don't make it too small). This would
reduce
the average time taken to restart the server.
Increase the size of the IPC queue (MSGMNB) so that it can hold more
messages.
I'm not sure why you got a LIBTUX_CAT:1485 message, but this could be
due to a
BRIDGE failure as a result of the congestion.
The NETLOAD parameter would reduce the number of messages going to the
remote
machine, but only if the local machine offers the same service. If the
remote
machine is the only source of the service then NETLOAD will have no effect.
I
recommend you do a search of this newsgroup for postings on "load balancing"
there's some good stuff which will explain how load balancing works.
Depending how things go, it might not be a bad idea to open a case with
BEA Support
and ask for guidance (remember to submit your ubbconfig (or preferably
do a tmunloadcf)
together with the complete ULOGs from both the master and the slave machine).
Hope this helps some.
Regards,
Malcolm.
"Dave" <[email protected]> wrote:
Hi Malcolm,
Thank you for your reply. Interesting point you have made about theMSGTQL
value.
Based on your suggestion I went hunting around the BEA site and found
the following
snipplet:
"- The MSGTQL parameter must be set to a value greater than or
equal to the MSGMNI setting."
(http://support.bea.com/application?namespace=askbea&origin=ask_bea_answer.jsp&event=link.view_answer_page_solution&answerpage=solution&page=msq/S-00488.htm)
If the above point is valid, then my MSGTQL is definitely way too low.
IF this
be the case, would you know of a method to work out what my MSGTQL bytes
value
should be?
Additionally, I have looked at other parameters which I could tune,and
would
adding a NETLOAD parameter in the *MACHINES section will reduce remote
servers
call? Which potentially, maybe reduce message queue blocking?
FYI:
The error messages I am seeing in my ULOG file are:
"LIBTUX_CAT: 1477 : ERROR .SysServerDied
LIBTUX_CAT: 1476 : ERROR: .SysServerRestarting"
Which then leads to message queue blocking
"CMDTUX_CAT: 1380 : ERROR: Message queue blocking prevented delivery,
Qaddr=..."
and potentially "LIBTUX_CAT: 1485 .SysNetworkDropped."
Many Thanks. Hope to hear from you (Malcolm) or other parties out there
that can
assists.
Thanks.
David -
Set Message Processing Queue based on input payload
Hi all..
Can i set the message processing queue from graphical mapping?
Receiver system in my scenario is ECC.Whuile sending messages to ECC, i need to send the message related to a particular ORDER Number in a particular queue.
for EX: if ORDER Number from my input payload is 457 i want to set the queue as ABC457.
Please let me know how to get it done from mapping or if there is any other approach.
Thanks
ManoharHi Ram,
What do you mean by Queue here?? we can check condition in mapping level only based on ORDER Number we can send message to receiver.use enhance receiver determination.
Regards,
Raj -
How to get Uniform distributed queue message counts with help of JMX
Hi,
Is there any way to get given queue message count, pending message counts using JMX. I can get all queue names and counts using JMX... after that i have to show only selected queue details.
Thanks,
-SomHi,
Following is the WLS snippet from an upcoming WLS JMS message management white paper that you can use to get the message statistics for a given destination.
With appropriate command line parameters, this script can be used to poll and dump the statistics of any destination on a specified interval.
Note that the WLST uses JMX API under the cover, so you can easily convert this into a pure JMX java program.
Hope this helps.
Kats
WebLogic JMS Message Statistics Script for weblogic.WLST
This script can be used for dumping message statistics of a given JMS Destination.
Based on the arguments, the script creates can print out message statistics
Usage: java weblogic.WLST msg_statistics.py [options]
Options:
username=... username to connect to WebLogic Server - defaults to "weblogic"
password=... password to connect to WebLogic Server - defaults to "weblogic"
url=... Provider URL of the Administration Server - defaults to "t3://localhost:7001"
wlsServerName=... WebLogic Server Name - defaults to "examplesServer"
jmsServerName=... JMS Server Name that hosts the destination - defaults to "examplesJMSServer"
jmsModuleName=... JMS Module Name that defines the destination - defaults to "examples-jms"
jmsDestinationName=... JMS Destination name to get the statistics - defaults to "exampleQueue"
pollingIntervalInSeconds=... Time interval between statistics dump - defaults to "60 secs"
redirectStdout=... File name to redirect the stdout of WLST - defaults to no redirect and the results wil be printed out to stdout.
help Prints out this usage help
Note that all the defaults are set based WebLogic Examples domain that is part of WebLogic Server installation.
The "examples" server can be started from "C:/Oracle/Middleware/wlserver_10.3/samples/domains/wl_server" using startWebLogic.sh
To try this script OOTB, start the "examples" server and run the JMS sample as described below.
cd :/Oracle/Middleware/wlserver_10.3/samples/domains/wl_server/bin
. ./setDomainEnv.sh
cd $WL_HOME/samples/server/examples/src/examples/jms/queue
javac -d . *.java
export CLASSPATH=".;$CLASSPATH"
java examples.jms.queue.QueueSend t3://localhost:7001
Follow the prompts to populate the queue
Examples:
msg_statistics.py - Dump the message statistics of the exampleQueue for every 1 min
msg_statistics.py user=weblogic pass=weblogic url=t3://localhost:7001
wlsServerName=examplesServer jmsServerName=examplesJMSServer
jmsModuleName=examples-jms jmsDestinationName=exampleQueue
pollingIntervalInSeconds=30
For more details on JMS Message Management using WLST, see "WebLogic JMS Message Management In a Nutshell" whitepaper.
from weblogic.jms.extensions import JMSMessageInfo
from weblogic.messaging.kernel import Cursor
from javax.jms import TextMessage
from javax.jms import DeliveryMode
from java.io import ByteArrayOutputStream
from java.io import StringBufferInputStream
from java.util import Properties
from java.util import Date
from java.lang import *
import jarray
import sys
# shows_messages() definition
def dump_statistics(wlsServerName, jmsServerName, jmsModuleName, jmsDestinationName, pollingIntervalInSeconds):
pollingIntervalInMillis = long(pollingIntervalInSeconds) * 1000L
domainRuntime()
cd ('ServerRuntimes')
spath = wlsServerName + "/JMSRuntime/" + wlsServerName +".jms"
cd (spath)
fullDestName=jmsServerName+'/Destinations/'+jmsModuleName +'!'+jmsDestinationName
cdPathForDestName='JMSServers/'+ fullDestName
cd (cdPathForDestName)
while 1:
print "========================================================================================================================"
print "Messages Messages Messages Messages Bytes Bytes Bytes Bytes "
print "Current Pending High Received Current Pending High Received "
print "Count Count Count Count Count Count Count Count "
print "========================================================================================================================"
s = "%8d %8d %8d %8d %8d %8d %8d %d" % (cmo.getMessagesCurrentCount(), cmo.getMessagesPendingCount(), cmo.getMessagesHighCount(), cmo.getMessagesReceivedCount(), cmo.getBytesCurrentCount(), cmo.getBytesPendingCount(), cmo.getBytesHighCount(), cmo.getBytesReceivedCount())
print s
print ''
Thread.sleep(long(pollingIntervalInMillis))
# Function to handle script arguments of the variety 'n=v', where
# arguments are placed into a dictionary of nv pairs and returned
# to the caller
def argsToDict(args):
d = {}
for arg in args:
#print "arg: " + arg
pair = arg.split('=', 1)
#print "pair: " + str(pair)
if len(pair) == 2:
# binary argument, store as key pair
key = pair[0]
val = pair[1]
d[key] = val
else:
# Unary argument, story with empty (non-null) key
d[arg] = ''
print "Arguments: " + str(d)
return d
# Returns the value found in the provided map, at the location
# specified by 'key'; if no entry exists in the map for 'key',
# the provided default is returned.
def getValue(dict, key, default=None):
ret = default
if dict is not None:
try:
ret=dict[key]
except KeyError:
pass
return ret
# Connect to the target server specified in the provide args
def connectIfNecessary(argsDict=None):
# connect if necessary
if connected == "false":
user=getValue(argsDict, "user", "weblogic")
passwd=getValue(argsDict, "pass", "weblogic")
url=getValue(argsDict, "url", "t3://localhost:7001")
print "Connecting with [" + user + "," + passwd + "," + url + "]"
connect(user,passwd,url)
# Retrieve a positional argument if it exists; if not,
# the provided default is returned.
# Params:
# pos The integer location in sys.argv of the parameter
# default The default value to return if the parameter does not exist
# returns the value at sys.argv[pos], or the provided default if necesssary
def getPositionalArgument(pos, default):
value=None
try:
value=sys.argv[pos]
except:
value=default
return value
# Main
argsDict = argsToDict(sys.argv)
redirectOutputFileName = getValue(argsDict, "redirectStdout")
if redirectOutputFileName is None:
pass
else:
redirect(redirectOutputFileName, 'false')
print "The output from this program gets written into file " + redirectOutputFileName
sys.stdout = open(redirectOutputFileName, "w")
isHelp = getValue(argsDict, "help")
if isHelp is None:
pass
else:
print __doc__
exit()
connectIfNecessary(argsDict)
wlsServerName = getValue(argsDict, "wlsServerName", "examplesServer")
jmsServerName = getValue(argsDict, "jmsServerName", "examplesJMSServer")
jmsModuleName = getValue(argsDict, "jmsModuleName", "examples-jms")
jmsDestinationName = getValue(argsDict, "jmsDestinationName", "exampleQueue")
pollingIntervalInSeconds = getValue(argsDict, "pollingIntervalInSeconds", "60")
dump_statistics(wlsServerName, jmsServerName, jmsModuleName, jmsDestinationName, pollingIntervalInSeconds)
disconnect()
print 'End of script ...'
exit() -
Every time I start iTunes I get the message: "iTunes exec has been set to run in compatability mode for an older version of Windows. Turn off compatability mode for iTunes before you open it." How do I turn off the compatability mode? Particularly when I have to do it before I turn on iTunes.
Try the following document, only be sure that none of the boxes in the compatibility mode tab are checked (not just the compatibility mode box itself):
iTunes for Windows: How to turn off Compatibility Mode -
I just set up an account at the I tunes store including authorization to charge my pay pal abount. I have also received e-mail confirmation that the account is set up, but every time I try to make a purchase I get a message that says apple ID has not yet been used with the I Tunes Store and it takes me back through the process of authorizing my paypay account. Help!
Once you purchase or download an app it will always be associated with the Apple ID used to download it. When that app requires and update you must use the Apple ID and password used to download it in the first place. The only way around this is to delete the apps the require the old Apple ID and download or purchase them again with the new Apple ID.
-
I have an ipad air and I'm trying to set up a telus email on it but it won't work. I keep getting a message saying username or password for IMAP is incorrect...please help!
This has nothing to do with iPhoto. When I have this type of problem I call tech support for my email service. They probably are the only source of the correct settings
LN -
ey How Do I Get Group Message On The IPhone 4s because some reason it doesn't want to show . First i did is setting then messages it only show imessage and message count )HELP)
At the bottom of the page Settings > Messages you should have a section headed "SMS/MMS" Turn MMS messaging on then you can turn group message on.
-
Not able to get the message from Queue using MQ adapter
HI
Using Mq adapter am able to put the message in a queue and am able to get the message if i select the schema type as opaque, but am not able to get the message if i specify any schema type and am getting timed out exception.
Kindly help to proceed with this issue.Hi,
Am also facing the same issue.
I would be thankful if anyone can provide the solution -
I can no longer make my AOL e mail work with Mac Mail on all my devices. When I try to set up the account and put in the correct aol account and password I get the message "Unable to verify account name or password". I know the account name and password is correct as I can open the AOL e mail page on Safari. I have changed the password, and it still does not work. AOL tech support has been no help. AOL email worked for years but last week due to suspected spam activity AOL locked my AOL account. I got that straightened out but now i cannot set it up on any of my devices: Macbook Air, Ipad, I pad mini and iPhone 6 without that message. I took everything to Apple store and everything is set up correctly on my devices. AOL tech support is no help and keeps giving me different solutions and answers, none of which has worked. Any solutions out there? All my Apple Software is up to date on all my devices
Delete your Gmail account from the Mail/Contacts/Calendars settings page, and then add it back in using the new Gmail password.
Matt -
I'm trying to set up my iPad2. I am entering my Apple ID and get a message that says "try another apple id, this ID is already being used. The only time I've used this Apple ID (my emal) was when I purchased a mac for my college aged child.
Thank you...I had selected the incorrect option to create an Apple ID....so backing up a few pages and doing as you stated worked!
Maybe you are looking for
-
Please help with strange monitor/Lightroom 4 interaction problem
I bought a Dell Ultrasharp U3011 yesterday, and I'm now facing a very strange problem. It's sort of related to the common discussed issue of Lightroom's color management, but there is a twist here. I'll explain. The monitor I had been using (and stil
-
Call transaction in mode N fro transaction F-02
Hi, The call transaction for F-02 work well in mode 'A' and it creates the FI posting. But when I execute it in mode 'N' it does not post. Any ideas? Thanks in advance.
-
Getting very frustrated. I just did an update on an App for a women's magazine, except afterwards I could not read a copy that I just bought YESTERDAY! Why?? I do not want to have to buy something again that I already paid for. Thank you if you can h
-
Plan cost in wbs is as per std cost of material
Hi All We have created a sales order having billing type as a rental (4 quarters of 4500 value each) and in pricing conditions, the value is 1500. We have done account assignment of WBS element to it for getting revenues figures on it. When we run th
-
JMS Server without J2EE server?
Hi, We're working on a relatively small application where a small amount of messaging would be beneficial. What I ideally need is a free reference implementation of the JMS spec which does not require a full J2EE server with ORB, etc all being starte