"aboutToUpdate" event hook and clustering using JMS Coordinated Cache
On certain object, In the aboutToUpdate method I'm calling the DescriptorEvent.updateAttributeWithObject to update the object with the last person who update the object and the date.
CODE:
event.updateAttributeWithObject("_lastUpdatedBy", utm.getUser());
event.updateAttributeWithObject("_lastUpdatedByID", new Integer(utm.getUser().getID()));
event.updateAttributeWithObject("_lastUpdateDate", utm.getUpdateDate());
This is somehow making the RCM call
JMSTopicTransportManager.createJMSTopicRemoteConnection
I have no idea why it's doing this but it is. As a workaround I've set the descriptor's cacheSynchronizationType to invalidate and I've noticed that it doesn't call the createJMSTopicRemoteConnection and doesn't break the JMS topics; however, this is a major performance hit.
CODE:
__descriptor.setCacheSynchronizationType(oracle.toplink.descriptors.ClassDescriptor.INVALIDATE_CHANGED_OBJECTS);
I need a solution that will allow normal caching policy with this event hook. Does anyone know of any?
Message was edited by:
esn
The set up in sessions.xml is correct. The error points to a problem with the topic/jms setup in WebLogic, and so if you get this error again, you will need to verify the jms factory and topic configuration. This current problem was resolved by using the default jms factory/topic defined in WLS' example server.
Best Regards,
Chris
Similar Messages
-
Compressor and Clusters - using Cluster Administrator Cores
So I was recently set the task of setting up our small post production studio's double NAT network and Mac Mini Server, FTP and, most importantly, render farm and compressor (farm?). So we have an iMac, 2 Mac Minis, Mac Mini Server and Mac Pro. I managed (with a great deal of trial and error) to get everything set up, I can go into compressor from any machine and submit a task, and the controller (set as the mac mini server) assigns available cores to start transcoding. However, the MMServer itself ONLY submits 1 core of its' own, and that's set to rendering, not compressor. When I look in Qadmin, all of MMServer's cores assigned to Compressor are greyed out stating "Comprssor (unmanaged)" and can't be used. It is set as Cluster Controller AND SERVICES but it doesn't do the SERVICES part.
Any help would be greatly appreciated! Those extra cores/threads are just sitting there doing nothing!
EDIT - Just to clarify all the machines are set to "Services Only" except the MMServer, and also I do need both Rendering as well as Compressor.Hey I came in to the office today and re-made the whole cluster again and now it's working. If in doubt... turn it off and on again.
-
Toplink Cache Coordination using JMS - doesn't work, gives a warning
Hi, I am trying to implement cache coordination on Oracle App Server 9.0.4 in a clustered environment. I have two application sessions configured to use JMS for cache coordination. When I make an update to one of the objects in one application which is cached and used by both the applications, I get the below warning in the log file and the changes does not propogate to the other application.
[TopLink Warning]: 2007.10.23 01:45:17.463--ServerSession(802908582)--Thread(Thread[Thread-112,5,ApplicationServerThreadGroup])--null
command failed due to: javax.jms.JMSException: getObject
at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1899)
at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1915)
at com.evermind.server.jms.EvermindObjectMessage.getObject(EvermindObjectMessage.java:128)
at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.onMessage(JMSTopicRemoteConnection.java:73)
at oracle.toplink.remotecommand.jms.JMSTopicTransportManager$JMSOnMessageHelper.run(JMSTopicTransportManager.java:261)
I have no clue from the warning above as to what could be wrong. Does anybody have any idea? Is there a way I could debug and see what really is happening?
Thanks
SwapnaHi, thanks for your response.
I set the logging level to all and this is the complete stack trace I see in the log.
[TopLink Finest]: 2007.10.25 01:54:04.547--ServerSession(2121070148)--Thread(Thread[Thread-465,5,main])--Retreived remote message from
JMS topic: ICMS Toplink topic
[TopLink Warning]: 2007.10.25 01:54:04.555--ServerSession(2121070148)--Thread(Thread[Thread-465,5,main])--null command failed due to:
javax.jms.JMSException: getObject
at com.evermind.server.jms.JMSUtils.makeJMSException(JMSUtils.java:1899)
at com.evermind.server.jms.JMSUtils.toJMSException(JMSUtils.java:1915)
at com.evermind.server.jms.EvermindObjectMessage.getObject(EvermindObjectMessage.java:128)
at oracle.toplink.internal.remotecommand.jms.JMSTopicRemoteConnection.onMessage(JMSTopicRemoteConnection.java:73)
at oracle.toplink.remotecommand.jms.JMSTopicTransportManager$JMSOnMessageHelper.run(JMSTopicTransportManager.java:261)
I am using toplink version 10.1.3.1. I contacted Oracle Technical support but so far they were not able to figure this out. I will try using RMI as you suggested to make sure.
I have another question to ask you about logging. I am working on a different application which is in production and uses toplink version 9.0.3. Due to excessive logging, I am trying to set the logging level to warning and I don't see this as an option in 9.0.3. The documentation does talk about it but using toplink workbench and I can't open the session.xml using Toplink workbench 9.0.3. Is it doable at all in toplink version 9.0.3?
Thanks
Swapna -
Issues with TopLink Cache Coordination using JMS for manual DB updates
Hi,
We are having 2 web application using same Database and Toplink library but 2 session objects for both the applications. We are using JMS for cache coordination. JMS propagating messages successfully between the applications and able to see the same object changes in both the applications properly. Now, we are trying to refresh cache for manual updates in Database. We are trying to refresh single object which is modified in database in one application, refreshing in one application from which refresh happened but not in other application (JMS publishing the topic but updating one).
Our intention is refreshing in one application so that JMS should coordinate and update in others when DB manual updates. Please let us know any comments for the same.
Database using: Oracle 11g
Toplink Version:- 9.0.3See,
http://www.coderanch.com/t/592919/ORM/databases/Toplink-Cache-coordination-JMS-manual -
Error using JMS/AQ and Oracle9i
I have managed to get a solution up and running using JMS/AQ inside the database and a servlet that consumes messages. But the database waited for 20-30 seconds before generating a response so I looked in the dump files and found:
Tue Mar 26 15:00:00 2002
Errors in file C:\oracle\admin\orcl\udump\orclS001.TRC:
ORA-00603: ORACLE server session terminated by fatal error
ORA-22303: type "SYS"."AQ$_SIG_PROP" not found
ORA-21522: attempted to use an invalid connection in OCI (object mode only)
ORA-22303: type "SYS"."AQ$_SIG_PROP" not found
ORA-21522: attempted to use an invalid connection in OCI (object mode only)
ORA-03113: end-of-file on communication channel
ORA-06512: at "SYS.DBMS_AQADM_SYS", line 3755
ORA-06512: at line 1
ORA-06512: at "SYS.DBMS_AQJMS", line 57
ORA-06512: at line 1
Tue Mar 26 15:00:15 2002
found dead shared server 'S000', pid = (8, 40)
found dead shared server 'S001', pid = (13, 34)
found dead shared server 'S002', pid = (12, 30)
Any ideas? The server uses 20-30 seconds on every SQL query when I am running my queue. I have used:
AQjmsFactory.getTopicConnectionFactory("localhost", "ORCL", 1521, "thin");
to set up the connection inside the DB. Is there another way of doing this? The code is running inside the DB.
-ChristerI tried your suggestion but then the code fails with:
"ORA-14551 cannot perform a DML operation inside a query"
It works if I don't use the default connection. My code looks like:
try
OracleDriver ora = new OracleDriver();
//This one works
//java.sql.Connection con = DriverManager.getConnection(url, "username", "password");
//This one fails
java.sql.Connection con = ora.defaultConnection();
tconn = AQjmsTopicConnectionFactory.createTopicConnection(con);
/* Create a Topic Session */
tsess = tconn.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
tconn.start();
System.out.println ("Get the Topic...");
topic = ((AQjmsSession)tsess).getTopic("TS","tstopic") ;
System.out.println("Publish messages...") ;
publisher = tsess.createPublisher(topic);
txtmsg = tsess.createTextMessage() ;
txtmsg.setText("Alarm") ;
txtmsg.setStringProperty("alarmID", "12") ;
publisher.publish(topic, txtmsg) ;
txtmsg.clearProperties() ;
tsess.commit() ;
//tsess.close();
//tconn.close();
return "Success";
} catch (Exception e) {
System.out.println("ERROR");
e.printStackTrace();
return e.toString();
} -
What is RID in non clustered index and its use
Hi All,
I need help regarding following articles on sql server
1) what is RID in non clustered index and its use.
2) What is Physical and virtual address space. Difference in 32 bit vs 64 bit Virtual address space
Regards
RahulNext time Please ask single question in a thread you will get better response.
1. RID is location of heap. When you create Non clustered index on heap and
lookup happens to get extra records RID is used to locate the records. RID is basically Row ID. This is basic definition for you. Please read
this Thread for more details
2. I have not heard of Physical address space. I Know Virtual address space( VAS)
VAS is simple terms is amount of memory( virtual ) 'visible' to a process, a process can be SQL Server process or windows process. It theoretically depends on architecture of Operating System. 32 bit OS will have maximum range of 4 G VAS, it's calculated
like a process ruining on 32 bit system can address max up to 2^32 locations ( which is equivalent to 4 G). Similarly for 64 bit max VAS will be 2^64 which is theoretically infinite. To make things feasible maximum VAS for 64 bit system is kept to 8 TB. Now
VAS acts as layer of abstraction an intermediate .Instead of all request directly mapping to physical memory it first maps to VAS and then mapped to physical memory so that it can manage request for memory in more coordinated fashion than allowing process
to do it ,if not it will soon cause memory crunch.Any process when created on windows will see virtual memory according to its VAS limit.
Please read
This Article for detailed information
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
Using JMS Event Generator w/ remote WebLogic 8.1 queue
Hello,
I'm trying to create a workflow that is started by a JMS message queue event.
I'm trying to use the WLIJMSEventGenTool in WebLogic 8.1 to listen to a queue
on a remote WebLogic 8.1 installation, publish the incoming messages to a channel,
then initiate a workflow by subscribing to that channel. Here's a copy of my configuration
file for the tool:
<message-broker-jms-event-generator-def source-jndi-name="SearchInputQueue"> <channel
name="/srm/sInput/sInput" /> </message-broker-jms-event-generator-def >
I tried to tackle this by configuring a foreign JMS Server, Connection Factory,
and Destination using the Weblogic Admin Console. Below are the parameters I used
to define the remote connection
Foreign JMS Server:
jndi initial context factory: weblogic.jndi.WLInitialContextFactory jndi connection
url: //OPER1090:7001
Foreign connection factory:
local jndi name: FtsFactory remote jndi name: weblogic.jws.jms.QueueConnectionFactory
(Are username and password required?)
Foreign JMS Destination:
local jndi name: SearchInputQueue remote jndi name: InternalSearchInputQueue
After I try to deploy my generated JMS Event jar, I receive the following error:
<Jun 6, 2003 10:31:50 AM EDT> <Warning> <EJB> <BEA-010061> <The Message-Driven
E JB: SearchInputQueue-UnorderedMessageListener is unable to connect to the JMS
de stination: SearchInputQueue. The Error was: [EJB:011010]The JMS destination
with the JNDI name: SearchInputQueue could not b e found. Please ensure that the
JNDI name in the weblogic-ejb-jar.xml is correct , and the JMS destination has
been deployed.>
I'm pretty sure the problem is simply that my syntax is off somewhere in my configuration.
I found the existing BEA documentation to be a bit too generic, containing no
specific examples of the proper syntax to use for this task. Can anyone offer
any advice or better, a working example? Any BEA reps out there?Hello,
I'm trying to create a workflow that is started by a JMS message queue event.
I'm trying to use the WLIJMSEventGenTool in WebLogic 8.1 to listen to a queue
on a remote WebLogic 8.1 installation, publish the incoming messages to a channel,
then initiate a workflow by subscribing to that channel. Here's a copy of my configuration
file for the tool:
<message-broker-jms-event-generator-def source-jndi-name="SearchInputQueue"> <channel
name="/srm/sInput/sInput" /> </message-broker-jms-event-generator-def >
I tried to tackle this by configuring a foreign JMS Server, Connection Factory,
and Destination using the Weblogic Admin Console. Below are the parameters I used
to define the remote connection
Foreign JMS Server:
jndi initial context factory: weblogic.jndi.WLInitialContextFactory jndi connection
url: //OPER1090:7001
Foreign connection factory:
local jndi name: FtsFactory remote jndi name: weblogic.jws.jms.QueueConnectionFactory
(Are username and password required?)
Foreign JMS Destination:
local jndi name: SearchInputQueue remote jndi name: InternalSearchInputQueue
After I try to deploy my generated JMS Event jar, I receive the following error:
<Jun 6, 2003 10:31:50 AM EDT> <Warning> <EJB> <BEA-010061> <The Message-Driven
E JB: SearchInputQueue-UnorderedMessageListener is unable to connect to the JMS
de stination: SearchInputQueue. The Error was: [EJB:011010]The JMS destination
with the JNDI name: SearchInputQueue could not b e found. Please ensure that the
JNDI name in the weblogic-ejb-jar.xml is correct , and the JMS destination has
been deployed.>
I'm pretty sure the problem is simply that my syntax is off somewhere in my configuration.
I found the existing BEA documentation to be a bit too generic, containing no
specific examples of the proper syntax to use for this task. Can anyone offer
any advice or better, a working example? Any BEA reps out there? -
Sample prog's on LDB using Get events and also using LDB_PROCESS
Hello,
Can any one send me programs on LDB by linking it to an executable program using get event and also by using the Function Module LDB_ PROCESS.
Please do not provide me the Example prog's available in SAP HELP
If you have any sample prog's then please provide them.
Have a great day!
Thanks & Regards,
Krishna Chaitanyahi,
A sample prog with LDB PNP
*& Report ZH_REPT_PAYMENT *
report zh_rept_payment line-size 80 no standard page
heading.
tables: pernr, " Standard Selections for HR Master Data Reporting
pcl1, " HR Cluster 1
pcl2, " HR Cluster 2
pa0009,
PA9001,
PA9006,
pa0002,
pc260 , " Cluster Directory for Payroll Results
bnka .
Infotypes
infotypes: 0001. " Organizational Assignment
Declaration of Internal Tables
data : bnka1 like bnka occurs 0 with header line .
data: begin of t_int_rep occurs 100,
bankl like pc209-bankl, " Bank Number
zlsch like pc209-zlsch, " Payment method
pernr like pernr-pernr, " Employee Number
ename like pernr-ename, " Employee Name
bankn like pc209-bankn, " Bank Account Number
betrg like pc209-betrg, " Amount to be transfered
zweck like pa0009-zweck, " Purpose
end of t_int_rep.
data: begin of int_rep occurs 100,
bankl like pc209-bankl, " Bank Number
zlsch like pc209-zlsch, " Payment method
pernr like pernr-pernr, " Employee Number
ename like pernr-ename, " Employee Name
bankn like pc209-bankn, " Bank Account Number
betrg like pc209-betrg, " Amount to be transfered
zweck like pa0009-zweck, " Purpose
begda like pa0009-begda, "Begin date
end of int_rep.
Declaration of Data Variables
data: ws_betrg like pc209-betrg, " BT Amount
w_val like spell occurs 0 with header line,
int_rep1(6), " TYPE I, " Employee Number
cnt type i value 0, " Counter
calcmolga like t500l-molga value '40', " Country Grouping
v_id(15),
calc_currency like t001-waers value 'INR'. " Currency
data : ctr type i,
dt_merge like pa0009-begda.
data: ws_totemp(6) type c,
ws_totamt(20) type c,
r_mth(9) type c,
ws_fpbeg(6) type c,
ws_fpend(6) type c,
ws_mthyr(6) type c,
ws_mthyr_r(14) type c,
r_mth_t(3) type c,
ws_amt(8) type c,
ws_bankl(14) type c,
ws_date(6) type c,
amount_word(500),
total_page type i,
pages type i,
remain type i.
data begin of i_spell.
include structure spell .
data end of i_spell .
data : c_molga type t500l-molga value '40',
c_banks type bnka-banks value 'IN'.
Standard Includes
include rpc2cd09. "Cluster CD data definition
include pc2rxin0.
include rpc2rx09.
include rpppxd00. " Data Definition buffer PCL1/PCL2
include rpppxd10. " Common Part buffer PCL1/PCL2
include rpppxm00. " Buffer Handling RoutinePCL1/PCL2
include zrpc2rox2. " Data Definition POCLSTERS (not J,K,U)
Selection Screen
selection-screen begin of block b1 with frame title text-001.
parameter: pa_mth(2) type c default sy-datum+4(2) obligatory,
pa_year(4) type c default sy-datum(4) obligatory,
p_bankl like pc209-bankl, " Bank Number
p_zlsch like pc209-zlsch. " Payment method
selection-screen end of block b1.
save_calc_currency = calc_currency.
count_top = 0.
get_pernr_flag = 0.
Top-Of-Page
top-of-page.
perform convert_month using pa_mth(2) r_mth.
ws_mthyr_r = r_mth.
concatenate ws_mthyr_r pa_year into ws_mthyr_r separated by space.
SKIP 5.
skip 1.
skip 4.
if int_rep-bankl eq ' '.
if int_rep-zlsch eq 'C' or int_rep-zlsch eq 'E' or
int_rep-zlsch eq ' '.
write: /1(85) 'CHEQUE PAYMENT STATEMENT'(047) centered.
elseif int_rep-zlsch eq 'L'.
write: /1(85) 'DEMAND DRAFT STATEMENT'(047) centered.
endif.
else.
write: /1(85) 'BANK TRANSFER STATEMENT'(002) centered.
endif.
skip.
write: /34 ws_mthyr_r,
62 'Page :'(008),69(2) sy-pagno intensified off,
' Of ',78(2) pages intensified off.
clear pages.
read table bnka1 with key bankl = int_rep-bankl .
if sy-subrc = 0.
if int_rep-zlsch eq 'T'.
write:/03(10) 'Bank Name : ', bnka1-banka.
write:/03(10) 'Branch : ', bnka1-brnch.
write:/03(10) 'Address : ', bnka1-stras.
endif.
endif.
skip.
write:/1(80) sy-uline.
write: /1 sy-vline, 2(5) 'Sl.No'(002),
7 sy-vline, 8(8) 'Emp.No.'(003),
16 sy-vline,17(35) 'Employee Name'(004).
*--added for Demand Draft
if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
write : 47 sy-vline, 48(15) 'Payable at'(005).
else.
write : 47 sy-vline,48(15) 'Account No.'(005).
endif.
write: 63 sy-vline,64(16) 'Amount'(006),
80 sy-vline.
write:/1(80) sy-uline.
end-of-page.
write:/1(80) sy-uline.
write:/2 'Printed on ', sy-datum.
Start-of-selection.
start-of-selection.
*perform h_headr.
ctr = 0.
set margin 5.
call function 'RP_GET_CURRENCY'
exporting
molga = calcmolga
importing
waers = calc_currency
exceptions
others.
if sy-subrc ne 0.
calc_currency = 'DEM'.
calc_currency = save_calc_currency.
endif.
get pernr.
cd-key-pernr = pernr-pernr.
perform import_cluster.
get_pernr_flag = 1.
check : ocd-version-molga eq calcmolga.
The table 'tabpernr' is filled with the personnel numbers
and is used after selection is finished.
move-corresponding pernr to tabpernr.
append tabpernr.
The table 'tab_rgdir' is filled
loop at rgdir.
rx-key-pernr = pernr-pernr.
unpack rgdir-seqnr to rx-key-seqno.
perform int_tab. "fill tab_rgdir
perform import_bt.
perform validate.
endloop.
End of Selection
end-of-selection.
*perform h_headr.
perform convert_date_a using pa_mth r_mth_t.
sort int_rep by bankl zlsch pernr betrg descending.
delete adjacent duplicates from int_rep
comparing bankl zlsch pernr .
sort int_rep by bankl zlsch bankn . "PERNR.
loop at int_rep.
at new bankl.
select single * into bnka1 from bnka
where banks = c_banks and
bankl = int_rep-bankl .
append bnka1.
clear bnka1.
endat.
endloop.
for Demand Draft - purpose added
loop at int_rep.
concatenate pa_year(4) pa_mth(2) '01' into dt_merge.
select single * "zweck into int_rep-zweck
from pa0009 where
pernr = int_rep-pernr and
bankl = int_rep-bankl and
zlsch = int_rep-zlsch
and begda <= dt_merge and
endda >= dt_merge .
if sy-subrc = 0.
int_rep-zweck = pa0009-zweck.
modify int_rep.
endif.
endloop.
*-for DD and Chq sorted by PAyable at and EMPNO wise
if p_zlsch = 'T' .
sort int_rep by bankl zlsch bankn . "PERNR.
else. "added for "payable at" for DD/Chq
else.
sort int_rep by zweck pernr . "PERNR.
endif.
*delete adjacent duplicates from int_rep.
t_int_rep] = int_rep[.
loop at int_rep.
*-for page of page no.
total_page = 0.
loop at t_int_rep where bankl = int_rep-bankl
and zlsch = int_rep-zlsch.
total_page = total_page + 1.
endloop.
pages = total_page div 25.
remain = total_page mod 25.
comment bcoz its adding one extra page no.
done as on 29/11/2004
if remain > 0.
pages = pages + 1.
endif.
**-end
at new bankl.
ctr = 0 .
new-page.
endat.
at new zlsch.
ctr = 0 .
new-page.
endat.
clear v_id.
select single natio
into pa0002-natio
from pa0002
where pernr eq int_rep-pernr.
*-testing......for soma
if ctr > 24.
ctr = 0 .
write:/1(80) sy-uline.
new-page .
endif.
ctr = ctr + 1 .
cnt = cnt + 1.
pack int_rep-pernr to int_rep1.
write:/1 sy-vline, 2(3) cnt intensified off,
7 sy-vline, 9(6) int_rep1 intensified off,
16 sy-vline,17(35) int_rep-ename intensified off .
if ( int_rep-zlsch = 'l' or int_rep-zlsch = 'L' ).
write : 47 sy-vline,48(15) int_rep-zweck intensified off.
else.
write:
47 sy-vline,48(15) int_rep-bankn intensified off .
endif.
write: 63 sy-vline,64(16) int_rep-betrg
intensified off currency 'INR',
80 sy-vline.
ws_betrg = ws_betrg + int_rep-betrg.
*-testing......for soma
skip.
write :
/1 sy-vline, 7 sy-vline ,16 sy-vline ,47 sy-vline,63 sy-vline,80
sy-vline .
*-end testing......for soma
at end of zlsch.
if int_rep-bankl = ' '.
call function 'HR_IN_CHG_INR_WRDS'
exporting
amt_in_num = ws_betrg
importing
amt_in_words = amount_word
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
w_val-word = amount_word.
concatenate 'INR.' w_val-word into w_val-word
separated by space.
write:/1(80) sy-uline.
write: /1 sy-vline, 7 'Total transfer:'(009),
64(16) ws_betrg intensified off currency 'INR',
80 sy-vline.
write:/1(80) sy-uline.
write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
80 sy-vline.
write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
80 sy-vline.
write:/1(80) sy-uline.
clear: ws_betrg,cnt.
skip 2.
write: /2 'Prepared by :'(010), '_______________'(013),
45 'Checked by :'(011),'_______________'(013).
skip 2.
write: /2 'Printed On ', sy-datum,
45 'Approved by :'(012),'_______________'(013).
clear sy-pagno.
endif.
endat.
at end of bankl.
if int_rep-bankl ' '.
call function 'HR_IN_CHG_INR_WRDS'
exporting
amt_in_num = ws_betrg
importing
amt_in_words = amount_word
EXCEPTIONS
DATA_TYPE_MISMATCH = 1
OTHERS = 2
w_val-word = amount_word.
concatenate 'INR.' w_val-word into w_val-word
separated by space.
write:/1(80) sy-uline.
write: /1 sy-vline, 7 'Total transfer:'(009),
64(16) ws_betrg intensified off currency 'INR',
80 sy-vline.
write:/1(80) sy-uline.
write: /1 sy-vline, 3 w_val-word+0(76) intensified off,
80 sy-vline.
write :/1 sy-vline, 10 w_val-word+76(70) intensified off,
80 sy-vline.
write:/1(80) sy-uline.
clear: ws_betrg,cnt.
skip 2.
write: /2 'Prepared by :'(010), '_______________'(013),
45 'Checked by :'(011),'_______________'(013).
skip 2.
write: /2 'Printed on ', sy-datum,
45 'Approved by :'(012),'_______________'(013).
clear sy-pagno.
NEW-PAGE.
endif.
endat.
endloop.
End of Page
end-of-page.
write: /2 'Prepared by :'(010), '_______________',
45 'Checked by :'(011),'_______________'.
*& Form IMPORT_CLUSTER
Importing Data from Cluster *
form import_cluster.
sy-subrc = 0.
rp-imp-c2-cd.
if sy-subrc eq 0.
if cd-version-number ne ocd-version-number.
endif.
endif. " SY-SUBRC EQ 0
endform. " IMPORT_CLUSTER
*& Form INT_TAB
Filling internal table tab_rgdir form int_tab.
*Fill internal table tab_rgdir.
move-corresponding rgdir to tab_rgdir.
tab_rgdir-pernr = pernr-pernr.
append tab_rgdir.
endform. " INT_TAB
*& Form IMPORT_bt
Import Values from Bank Transactions Table (BT) form import_bt.
rp-init-buffer.
RP-IMP-C2-RX.
rp-imp-c2-in.
if rp-imp-in-subrc eq 0.
if in-version-number ne oin-version-number.
write: / 'Schlüssel des Clusters RX:'(015),
rx-key-pernr, rx-key-seqno.
write: / 'The imported version of the cluster'(016), 'RX',
'is not current'(017).
write: / 'Imported version :'(018),
oin-version-number.
write: / 'Current version of cluster :'(019),
in-version-number.
stop.
else.
sy-subrc = 0.
endif.
else.
sy-subrc = 8.
write: /
'Inconsistencies between cluster directory and directory for'(020).
write: /
'No payroll results found for data in cluster directory'(021).
write : /
'Please contact hotline to solve the current problem'(022).
endif.
ws_fpbeg(2) = versc-fpbeg+4(2).
ws_fpbeg+2(4) = versc-fpbeg(4).
ws_fpend(2) = versc-fpend+4(2).
ws_fpend+2(4) = versc-fpend(4).
ws_mthyr(2) = pa_mth.
ws_mthyr+2(4) = pa_year.
check ws_mthyr = ws_fpbeg.
check ws_mthyr = ws_fpend.
loop at bt. "from pc209
int_rep-pernr = pernr-pernr.
int_rep-ename = pernr-ename.
int_rep-bankl = bt-bankl.
int_rep-bankn = bt-bankn.
int_rep-betrg = bt-betrg.
int_rep-zlsch = bt-zlsch.
append int_rep.
endloop.
IF P_BANKL ' ' AND P_ZLSCH ' '.
DELETE INT_REP WHERE BANKL P_BANKL.
ELSEIF P_BANKL = ' ' AND P_ZLSCH ' '.
DELETE INT_REP WHERE ZLSCH P_ZLSCH.
ELSEIF P_BANKL ' ' AND P_ZLSCH = ' '.
DELETE INT_REP WHERE BANKL P_BANKL.
ENDIF.
endform. " IMPORT_BT
*& Form CONVERT_MONTH
Fetching Month Text form convert_month using mth t_mth.
case mth.
when '01'.
t_mth = 'January'(023).
when '02'.
t_mth = 'February'(024).
when '03'.
t_mth = 'March'(025).
when '04'.
t_mth = 'April'(026).
when '05'.
t_mth = 'May'(027).
when '06'.
t_mth = 'June'(028).
when '07'.
t_mth = 'July'(029).
when '08'.
t_mth = 'August'(030).
when '09'.
t_mth = 'September'(031).
when '10'.
t_mth = 'October'(032).
when '11'.
t_mth = 'November'(033).
when '12'.
t_mth = 'December'(034).
endcase.
endform. " CONVERT_MONTH
*& Form CONVERT_DATE_A
Fetching Month Text * form convert_date_a using mth_t t_mth_t.
case mth_t.
when '01'.
t_mth_t = 'Jan.'(035).
when '02'.
t_mth_t = 'Feb.'(036).
when '03'.
t_mth_t = 'Mar.'(037).
when '04'.
t_mth_t = 'Apr.'(038).
when '05'.
t_mth_t = 'May.'(039).
when '06'.
t_mth_t = 'Jun.'(040).
when '07'.
t_mth_t = 'Jul.'(041).
when '08'.
t_mth_t = 'Aug.'(042).
when '09'.
t_mth_t = 'Sep.'(043).
when '10'.
t_mth_t = 'Oct.'(044).
when '11'.
t_mth_t = 'Nov.'(045).
when '12'.
t_mth_t = 'Dec.'(046).
endcase.
endform. " CONVERT_DATE_A
*& Form VALIDATE
text
--> p1 text
<-- p2 text form validate .
if p_bankl <> ' ' and p_zlsch ' '.
delete int_rep where bankl p_bankl.
elseif p_bankl = ' ' and p_zlsch ' '.
delete int_rep where zlsch p_zlsch.
elseif p_bankl ' ' and p_zlsch = ' '.
delete int_rep where bankl p_bankl.
endif.
endform. " VALIDATE
Hope this helps, Do reward. -
Configuring Toplink Cache Coordination using JMS
After having spent one whole day reading documentation on the above topic, I did not get anywhere. I am looking for a direction to start aquainting myself with Oracle JMS basics to enable me with the configuration in toplink. I hope someone could please help me in getting started, direct me to documentation and/or examples and then I could have some specific and meaningful questions to ask.
As of now, I have these questions.
1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
2) Should I be configuring OJMS before I could use Oracle AS JMS?
3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
Any help will be highly appreciated.
Thanks
SwapnaOk. I found my answers
1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
Either of the one can be used. Here is what I found regarding the trade off
OJMS and OracleAS JMS are both J2EE 1.3 compliant JMS providers from Oracle. OJMS has been integrated into OracleAS 10g using the JCA adapter while at the same time leveraging Advanced Queuing in the Oracle Database for persistence and recoverability. If database recoverability guarantees, SQL queriability, transparent application failover, message transformation, propagation are required then Oracle recommends using OJMS as the JMS provider.
OracleAS JMS is a lightweight, in-memory/file based queuing system that provides a complete J2EE 1.3 JMS implementation. It is suited for applications that do not require Oracle specific JMS extensions or the recoverability guarantees that OJMS provides.
2) Should I be configuring OJMS before I could use Oracle AS JMS?
No. OracleAS JMS is always provided and preconfigured, except for the topics and queues, with the OC4J installation.
3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
No. The schema needs to be created by the admin and OJMS needs to be configured as the JMS Provider using this schema.
4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
Yes, if not using Oracle AS JMS.
Hope that was accurate. -
How to get the incoming file name using JMS adapter and SOAP adapter
Hi Everybody,
In one of my interface i need to get the file name of incoming flat file using JMS adapter at sender side. and then i am using xslt to convert it to IDOC and then posting to SAP IDOC.
my incoming filname are in this form price<DateTimestamp>.txt. when i do the tranformation this incoming file name should be part of one element in the IDOC which i am posting.
EX:
<IDOC
<REF>price<DateTimestamp>.txt</REF>
</IDOC>
Hope it is clear to everybody. I need your suggestion how i can capture this incoming file name and send it as part of IDOC.
Thanks
rajIf they are passing it in message id or correlation id,
you can access it using
<xsl:variable name="dynamic-conf"
select="map:get($inputparam, 'DynamicConfiguration')" />
<xsl:variable name="dynamic-key"
select="key:create('http://sap.com/xi/XI/System/JMS', 'DCJMSMessageID/ DCJMSCorrelationID')" />
<xsl:variable name="dynamic-value"
select="dyn:get($dynamic-conf, $dynamic-key)" />
Check this:
http://help.sap.com/saphelp_nw70/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
Thanks,
Beena. -
I assume my Apple TV should allow me to view all events, albums and slideshows in my iPhotos app but it only allows four events and four albums to display on my television. I'm using a Optus mini Wi Fi for my home network. Could this be the reason for limited access via my iMac computer?
ChrisNo, I have not chosen photos to share as I assumed that the Apple TV would access all photos and music that are stored on my iMac.
Thanks for your advice. I will check it out.
Chris -
If I have, say 200 photos in an EVENT and I use 50 of them in an ALBUM, and months later I'm happy with the ALBUM and want to trash the extra 150 photos, is there an easy way to know which 150 photos to trash? My idea is to not have hundreds of photos taking up space on the hard drive.
Thanks.Various ways:
Easy one: Flag the ones you want to keep (do this in the Album - Select All and Flag)
Then:
File -> New Smart Album
Event -> contains -> Name of the Event
Photo -> Is Not -> Flagged
will find the unwanted 150.
Regards
TD -
How to Set JMS property and Read JMS property in BPEL using JMS adapter
Does any one know how to set or read more than one JMS property in BPEL using JMS adapter. My queue server is Oracle JMS server.
Any help and sample is well appreciatedHi Van
I have noted that only the attribute "type" is missing. It seems that when you create a "string" property, the attribute "type" is droped from the XML. If you use another type (as "integer" or "double") it stays there.
If you try to read your properties, except for the "type" attribute, you should be successful, as I am. If you need, please tell me your email, I can send you my code.
Source Code:
in ASSIGN activity (process which SENDS the JMS message):
<assign name="TESTES">
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@type"/>
</copy>
<copy>
<from expression="'name'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@name"/>
</copy>
<copy>
<from expression="'value1'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[1]/@value"/>
</copy>
<bpelx:append>
<bpelx:from>
<Property name="" type="" value=""
xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/"/>
</bpelx:from>
<bpelx:to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties"/>
</bpelx:append>
<copy>
<from expression="'string'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@type"/>
</copy>
<copy>
<from expression="'name2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@name"/>
</copy>
<copy>
<from expression="'value2'"/>
<to variable="HeaderJms" part="outboundHeader"
query="/ns5:JMSOutboundHeadersAndProperties/ns5:JMSOutboundProperties/ns5:Property[2]/@value"/>
</copy>
</assign>
in ASSIGN activity (process which READS the JMS message)
<assign name="Assign_1">
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[10]/@value"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@name"/>
<to variable="temp"/>
</copy>
<copy>
<from variable="Variable_1" part="inboundHeader"
query="/ns3:JMSInboundHeadersAndProperties/ns3:JMSInboundProperties/ns3:Property[12]/@value"/>
<to variable="temp"/>
</copy>
</assign>
Note that I do not try to read the "type" attribute, otherwise it will fail.
Here is the JMS Header Message received:
<inboundHeader>
<JMSInboundHeadersAndProperties xmlns="http://xmlns.oracle.com/pcbpel/adapter/jms/">
<JMSInboundHeaders>
<JMSCorrelationID>
bpel://localhost/pi_lms-c001e/BpelPiAtualizacaoC001E~1.0/3200025-BpInv0-BpSeq1.6-2
</JMSCorrelationID>
<JMSDeliveryMode>2</JMSDeliveryMode>
<JMSExpiration>0</JMSExpiration>
<JMSMessageID>ID:467DFA1FA1ED459EBF37F51F596C3F12</JMSMessageID>
<JMSPriority>4</JMSPriority>
<JMSRedelivered>false</JMSRedelivered>
<JMSType>com.mercurio.lms.integration.c001eip.c001EIntegrationPoint</JMSType>
<JMSTimestamp>1201552046253</JMSTimestamp>
</JMSInboundHeaders>
- <JMSInboundProperties>
<Property name="JMSXDeliveryCount" type="integer" value="1"/>
<Property name="JMSXRecvTimestamp" type="long" value="1201552046698"/>
<Property name="JMSXUserID" value="lms_dev_int_v1_user"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="JMS_OracleDelay" type="long" value="0"/>
<Property name="JMSXState" type="integer" value="0"/>
<Property name="IAS_VERSION" value="10.1.3"/>
<Property name="JMS_OracleDeliveryMode" value="2"/>
<Property name="name" value="value1"/> ("type" attribute was droped!!!)
<Property name="JMS_OracleTimestamp" type="long" value="1201552046253"/>
<Property name="name2" value="value2"/> ("type" attribute was droped!!!)
</JMSInboundProperties>
</JMSInboundHeadersAndProperties>
</inboundHeader>
Regards
Marcelo -
Correlation and Async/Sync Communication using JMS adapter without BPM
Hello
1. Pls explain with simple example docs/links --- Correlation
2. Async/Sync Communication using JMS adapter without BPM
If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-without-bpm-sp-19
Pls explain --- Correlation Settings, select JMSMessageID for the XI Conversation ID.
Pls explain -- Correlation Settings, select XI Conversation ID as jMSCorrelationID.
Can you pls explain me this example with JMSMessageID and JMSCorrelationID context
RegardsHi Henry,
For Correlation, please go through the below link.
/people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
Sync / Async Bridge communication using JMS : http://help.sap.com/saphelp_nw04s/helpdata/en/45/20d251c20a0732e10000000a155369/frameset.htm
Sync / Async communication without BPM in JMS : /people/venkataramanan.parameswaran/blog/2007/01/18/syncasync-communication-in-jms-adapter-without-bpm-sp19
/people/henrique.pinto/blog/2007/08/02/syncasync-scenarios-without-bpm
Hope these help
Regards
Kiran.. -
Revision: 2692
Author: [email protected]
Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
Log Message:
Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
QA: Yes
Doc: No
Checkintests: Pass
Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-227
Modified Paths:
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
blazeds/branches/3.0.x/qa/build.xmlRevision: 2692
Author: [email protected]
Date: 2008-07-31 13:05:35 -0700 (Thu, 31 Jul 2008)
Log Message:
Bug: BLZ-227 - When using JMS Destination, MessageClient and FlexClient not released from memory when the session times out.
QA: Yes
Doc: No
Checkintests: Pass
Details: Fixed a memory leak with JMS adapter. Also a minor tweak to QA build file to not to start the server if the server is already running.
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-227
Modified Paths:
blazeds/branches/3.0.x/modules/core/src/java/flex/messaging/services/messaging/adapters/J MSAdapter.java
blazeds/branches/3.0.x/qa/build.xml
Maybe you are looking for
-
Firefox won't establish a connection. Please help
Hello, My Mozilla Firefox has worked for ages and all of a sudden when my father tried to open it, it came up with a message saying: 'Unable to connect Firefox can't establish a connection to the server at www.ebay.com.au. The site could be temporari
-
Connecting a Mac to a shared printer
Hello, I was wondering if there was any way to connect my mbp to my network with a canon mp830 printer being shared on it? I have heard that a mac cannot connect to a canon printer over a network. Also I have a dlink dir-625 wireless n router with a
-
In Search of ultimate G5 1.8 powerPC MOD/UPGRADE??
I was in search of maximizing my G5 without having to purchase a new G5. I just read a lil something on solid state SSD drives. Now here is what i am trying to acomplish. I am running PROTOOLS 8.0 with a 002 digidesign interface. Im trying to run my
-
Transfering new contacts to address book in my Macbook Pro
Previously, I synced my mom's iphone contacts into my macbook pro. So the contacts in my address book are hers. Recently, i got my own iphone and i would like to transfer my contacts into my macbook. So how do i transfer the new contacts? Thanks, i w
-
Multiple find/changes into one step?
Hi there I have a series of find / changes that I need to do for all the chapters in a book. They'll be the same each time, and rather than do all ten of them for each chapter I'm wondering how I can condense it into one process that I can run on eac