Synaptics: "TapAndDragGesture" "false" delayed
Hello,
I'm facing a weird problem since a long time. I have disabled "TabAndDragGesture" and it used to work, but don't know why, now is draging again, but just for some milliseconds, then it turns off, as if it's delayed.
So I can still drag, not totally, but it drags even with it disabled.
Someone is facing the same problem?
[ricardofunke@funkenote ~]$ cat /etc/X11/xorg.conf.d/10-synaptics.conf
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "TapAndDragGesture" "false"
Option "FastTaps" "true"
Option "VertEdgeScroll" "true"
Option "TapButton1" "1"
# Option "TapButton2" "2"
# Option "TapButton3" "3"
EndSection
[ricardofunke@funkenote ~]$ synclient
Parameter settings:
LeftEdge = 153
RightEdge = 870
TopEdge = 115
BottomEdge = 652
FingerLow = 12
FingerHigh = 15
FingerPress = 128
MaxTapTime = 180
MaxTapMove = 56
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 1
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 141
EmulateTwoFingerMinW = 7
VertScrollDelta = 25
HorizScrollDelta = 25
VertEdgeScroll = 1
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.156495
TrackstickSpeed = 40
EdgeMotionMinZ = 15
EdgeMotionMaxZ = 80
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 102
EdgeMotionUseAlways = 0
TouchpadOff = 0
LockedDrags = 0
LockedDragTimeout = 5000
RTCornerButton = 0
RBCornerButton = 0
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 0
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 1
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 100
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 15
PressureMotionMaxZ = 80
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice = 1
TapAndDragGesture = 0
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 6
VertHysteresis = 6
ClickPad = 0
/var/log/Xorg.0.log
[ 19.489] (II) LoadModule: "synaptics"
[ 19.490] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 19.503] (II) Module synaptics: vendor="X.Org Foundation"
[ 19.503] compiled for 1.12.2, module version = 1.6.2
[ 19.503] Module class: X.Org XInput Driver
[ 19.503] ABI class: X.Org XInput driver, version 16.0
[ 19.503] (II) Using input driver 'synaptics' for 'AlpsPS/2 ALPS GlidePoint'
[ 19.503] (**) AlpsPS/2 ALPS GlidePoint: always reports core events
[ 19.503] (**) Option "Device" "/dev/input/event9"
[ 19.503] (--) synaptics: AlpsPS/2 ALPS GlidePoint: x-axis range 0 - 1023
[ 19.503] (--) synaptics: AlpsPS/2 ALPS GlidePoint: y-axis range 0 - 767
[ 19.503] (--) synaptics: AlpsPS/2 ALPS GlidePoint: pressure range 0 - 127
[ 19.503] (II) synaptics: AlpsPS/2 ALPS GlidePoint: device does not report finger width.
[ 19.503] (--) synaptics: AlpsPS/2 ALPS GlidePoint: buttons: left right middle
[ 19.503] (--) synaptics: AlpsPS/2 ALPS GlidePoint: Vendor 0x2 Product 0x8
[ 19.504] (--) synaptics: AlpsPS/2 ALPS GlidePoint: invalid finger width range. defaulting to 0 - 15
[ 19.504] (**) Option "FastTaps" "true"
[ 19.504] (**) Option "VertEdgeScroll" "true"
[ 19.504] (**) Option "TapButton1" "1"
[ 19.504] (**) Option "TapAndDragGesture" "false"
[ 19.504] (--) synaptics: AlpsPS/2 ALPS GlidePoint: touchpad found
[ 19.504] (**) AlpsPS/2 ALPS GlidePoint: always reports core events
[ 19.504] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input9/event9"
[ 19.504] (II) XINPUT: Adding extended input device "AlpsPS/2 ALPS GlidePoint" (type: TOUCHPAD, id 13)
[ 19.504] (**) synaptics: AlpsPS/2 ALPS GlidePoint: (accel) MinSpeed is now constant deceleration 2.5
[ 19.504] (**) synaptics: AlpsPS/2 ALPS GlidePoint: MaxSpeed is now 1.75
[ 19.504] (**) synaptics: AlpsPS/2 ALPS GlidePoint: AccelFactor is now 0.156
[ 19.504] (**) AlpsPS/2 ALPS GlidePoint: (accel) keeping acceleration scheme 1
[ 19.504] (**) AlpsPS/2 ALPS GlidePoint: (accel) acceleration profile 1
[ 19.504] (**) AlpsPS/2 ALPS GlidePoint: (accel) acceleration factor: 2.000
[ 19.504] (**) AlpsPS/2 ALPS GlidePoint: (accel) acceleration threshold: 4
[ 19.504] (--) synaptics: AlpsPS/2 ALPS GlidePoint: touchpad found
Last edited by ricardofunke (2012-09-06 19:52:02)
Is it possible for you to verify your theories in a lab environment with one or more C2900 and another model, both running IOS 15.0(1), given coldStart traps could be triggered relatively easily?
I have never seen coldStart trap delays (by itself) due to IOS bugs, but I did see several instances of every SNMP trap being delayed for longer and longer due to bug(s) in the pmd process of HPOV NNM. So I'm curious what your trap receiver is and if you've ruled out that as the culprit (which should be rather straight forward if you're seeing delays with any other non-coldStart traps, except when coldStart traps happen to be the only ones there was in your environment at the time.)
Similar Messages
-
Synaptics touchpad blocked & delay when using the keyboard in Windows 8.1
Sometimes (possibly when I use the keyboard and then quickly attempt to move the mouse arrow on the screen with the Synaptics touchpad), I am unable to move the cursor for a half of second-or-so.
Sometimes I cannot tap to click, maybe, few seconds (it is very annoying).
There are some Mouse and touchpad settings in Windows 8.1 ("To prevent the cursor from accidentally moving while you type, change the delay before clicks work") which I set to "No Delay (always on)" but it does not work, either.
I also checked the following registry key:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PrecisionTouchPad
but "AAPThreshold" is set correctly to 0 (No delay).
But I still experiences problems and touchpad does not work while typing and sometimes also few moments after.
Using HP Zbook 14, Win 8.1 x64, Synaptics driver 17.0.18.23.Hi,
If you trying connect two Universal apps through Bluetooth, can you check if the
Windows 8.1 Bluetooth RFComm sample runs fine on both the devices? I successfully tested the Windows 8.1 Bluetooth RFComm sample on Laptop (Windows 8.1) and Windows Phone 8.1 (paired).
Make sure the service which you are trying to advertise/listen is supported by both the devices.
-Sagar -
Fox news slideshows are not working in Vista Home 64 bit.
All fox news slideshows are not working since firefox 3.6 started. I can't get them to work in Internet explorer either.
== URL of affected sites ==
http://Error: $.ad is undefined
Source File: http://www.foxnews.com/static/all/js/slideshows-pack.js
Line: 850
// Slideshows - updated: 04/30/2010
// Dependencies: jQuery, jfoxCarousel plugin
(function($){
function SlideShows() {
this._data = {}; // slideshow data
this._info = {}; // current slideshow info
this._relatedMedia = {}; // related media data
this._trackData = false;
this.initialized = false;
this.toolTipId = "carousel-tooltip";
this.defaultTrackFrequency = 1; // tracker trigger
this._preloaderSrc = "/static/all/img/slideshow/slideshow-preloader.gif";
this._timer = { // timers
main: { fadeIn:800 },
carousel: { fadeIn:300 },
overlay: { onLast:10000,fadeIn:300,fadeOut:300 }
this.currentFocus = 1; // current item in focus
this.holderObj = {}; // holder for elements
this.hashObj = {}; // hash location holder
this.imgPreloadObj = {}; // holder for preloaded images
// carousel object controllers
this.carouselControlObj = {};
this.overlayControlObj = {};
this.trigger = { // listeners
main: false,
carousel: false,
overlay: false
this.overlayTimeout = false; // overlay timeout holder
SlideShows.prototype = {
init: function(config) {
for (i in config) { this['_'+i] = config[i]; }
this.main.root = this.carousel.root = this.overlay.root = this;
this.hashObj = this.helper.getHash();
if (typeof $.fn.jfoxCarousel<u>'undefined') {
showToConsole("[init] Error: carousel plugin not found!");
if (this._trackData) { // set tracking data
sTracker.set(this._trackData);
sTracker.track("pageLoad"); // page load tracker
this.preload();
this.setHolders();
this.initialized = true;
preload: function() {
var preloadImg = new Image();
preloadImg.src = this.preloadSrc;
setHolders: function() {
var SH = this;
var slideshowElm = $("#slideshow");
this.holderObj = {
doc: $(document),
body: $("body"),
intro: $("#section-intro"),
main: slideshowElm.find("#main-img"),
mainHolder: slideshowElm.find(".slideshow-placeholder"),
mainControl: slideshowElm.find(".slideshow-controller"),
description: slideshowElm.find(".slideshow-desc"),
relatedMedia: slideshowElm.find(".slideshow-related"),
carousel: slideshowElm.find(".slideshow-feature .slideshow")
this.holderObj.intro.each(function(){
var intro = $(this);
intro.find("h1:first").html(SH._info.title);
intro.find("p:first").html(SH._info.dek);
if (this.holderObj.main.size()>0) {
this.main.properties.minHeight = this.holderObj.mainHolder.innerHeight(); // get set height as "min-height"
this.main.build();
if (this.holderObj.carousel.size()>0) {
this.carousel.build();
$(document).ready(function(){ // wait for page load for the overlay
SH.holderObj.overlay = $("#slideshow-overlay");
var set = (SH.holderObj.overlay.size()>0) ? (typeof $.fn.jfoxCarousel!=='undefined') ? SH.overlay.set() : false : false;
SH.setDocReadyListeners();
this.setListeners();
setListeners: function() {
var SH = this;
var control = this.holderObj.mainControl;
// main image controls
control.find(".prev").click(function(){
SH.main.prev();
return false;
control.find(".next").click(function(){
SH.main.next();
return false;
if (typeof touchEventListener!=="undefined") {
var listenerConfig = {
elm: SH.holderObj.mainHolder,
moveSensitivity: 15,
eventsCallback: {
touchmoveMoveOnce: function(direction,moveProperties,rawEvent) {
// move callback - sensitivity
var directions = direction.join("|");
if (directions.indexOf("left")>-1) {
control.find(".next").trigger("click");
if (directions.indexOf("right")>-1) {
control.find(".prev").trigger("click");
touchEventListener.append(listenerConfig);
setDocReadyListeners: function() {
var SH = this;
// browse slideshow overlay
$(document).ready(function(){
$("#section-intro .additional-slides a").click(function() {
SH.overlay.show();
return false;
SH.holderObj.overlay.find(".close a").click(function(){
SH.overlay.hide();
return false;
replaySlideshow: function() {
var SH = this;
//TODO: build replay
this.overlay.hide(); // hide overlay
this.main.build(this.currentFocus = 1); // reset focus
sTracker.track("replaySlideshow");
// main image holder
SlideShows.prototype.main = {
properties: {},
build: function(slide,origin) {
var SH = this;
var root = this.root;
if (root.trigger.main) { return false; }
root.trigger.main = true;
slide = slide || false;
origin = origin || "main";
var control = root.holderObj.mainControl;
var data = root._data;
var initData = false;
var desc = [];
var helper = root.helper;
if (slide) {
if (slide 0) { desc.push('Source: ' + data.items[slide].source + ''); }
root.holderObj.description.html(desc.join(""));
// load related media
if (root._relatedMedia.items) {
var rmItems = root._relatedMedia.items;
if (rmItems.length>0) {
var rel = [];
rel.push('Related Articles');
for (var x=0; x 0) {
root.currentFocus--;
SH.build(root.currentFocus);
sTracker.track("clickPrevMain"); // tracker
if (!SH.isLast() && root.overlayTimeout) { clearTimeout(root.overlayTimeout); } // clear overlay timeout
isLast: function() {
var root = this.root;
return (root.currentFocus+1 > root._data.items.length) ? true : false;
// carousel
SlideShows.prototype.carousel = {
build: function() {
var SH = this;
var root = this.root;
var carousel = root.holderObj.carousel;
var data = root._data;
var list = [];
for (var x=0;x 0) {
var li = $(".slideshow > ul",carousel).children();
li.each(function(i){
var el = $(this);
var setClass = (i == eventObj.target-1) ? el.addClass("active") : el.removeClass("active");
controlsCallback: function(control) { // callback to set up controls
root.carouselControlObj = control;
carousel.find(".prev").click(function(){ // previous link
control.stopAutoScroll();
control.slide('prev');
sTracker.track("clickPrevCarousel"); // tracker
return false;
carousel.find(".next").click(function(){ // next link
// show overlay on last carousel link
//var lastLink = (!currentEventObj) ? false : (currentEventObj.batch.current+1 > currentEventObj.batch.max) ? $(document).ready(function(){ root.overlay.show(false,true); }) : false;
control.stopAutoScroll();
control.slide('next');
sTracker.track("clickNextCarousel"); // tracker
return false;
carousel.jfoxCarousel(config);
if (typeof touchEventListener!=="undefined") {
var listenerConfig = {
elm: carousel,
moveSensitivity: 15,
eventsCallback: {
touchmoveMoveOnce: function(direction,moveProperties,rawEvent) {
// move callback - sensitivity
var directions = direction.join("|");
if (directions.indexOf("left")>-1) {
carousel.find(".next").click();
if (directions.indexOf("right")>-1) {
carousel.find(".prev").click();
touchEventListener.append(listenerConfig);
// overlay
SlideShows.prototype.overlay = {
set: function() {
var root = this.root;
var overlay = root.holderObj.overlay;
overlay.find(".slideshow-feature").each(function(){
var carousel = $(this);
var allItems = carousel.find(".slideshow ul").children().children();
allItems.each(function(){
var div = $(this);
var link = div.find("a:first").attr("href");
div.hover(function(){
div.css("cursor","pointer");
},function(){
div.css("cursor","");
}).unbind("click").click(function(){
window.location.replace(window.location.hostname + link);
var config = {
auto: { set:false,speed:3000 }, // auto scroll
slide: "horizontal", // horizontal or vertical
scroll: 3, // number of items to scroll per event
show: 3, // items shown
speed: "slow", // scroll speed
rotate: false, // rotate back to star if end
//focus: { item:0,animate:false }, // focus to target item on load
eventCallback: function(eventObj) {
if (eventObj.batch.current</u>1) {
carousel.find(".prev").addClass("inactive");
} else {
carousel.find(".prev").removeClass("inactive");
if (eventObj.batch.current<u>eventObj.batch.max) {
carousel.find(".next").addClass("inactive");
} else {
carousel.find(".next").removeClass("inactive");
controlsCallback: function(control) { // callback to set up controls
root.overlayControlObj = control;
carousel.find(".prev").click(function(){ // previous link
control.stopAutoScroll();
control.slide('prev');
sTracker.track("clickPrevOverlay"); // tracker
return false;
carousel.find(".next").click(function(){ // next link
control.stopAutoScroll();
control.slide('next');
sTracker.track("clickNextOverlay"); // tracker
return false;
carousel.jfoxCarousel(config);
if (typeof touchEventListener!=="undefined") {
var listenerConfig = {
elm: carousel,
moveSensitivity: 15,
eventsCallback: {
touchmoveMoveOnce: function(direction,moveProperties,rawEvent) {
// move callback - sensitivity
var directions = direction.join("|");
if (directions.indexOf("left")>-1) {
carousel.find(".next").click();
if (directions.indexOf("right")>-1) {
carousel.find(".prev").click();
touchEventListener.append(listenerConfig);
show: function(delay,isReplay) {
isReplay = isReplay || false;
delay = delay || false;
var root = this.root;
if (root.trigger.overlay) { return false; } // if already open
var SH = this;
delay = (isNaN(delay)) ? 0 : delay; // delayed show
root.overlayTimeout = setTimeout(function(){
SH.setReplay(isReplay);
if (root.main.isLast()) {
root.holderObj.overlay.fadeIn(root._timer.overlay.fadeIn,function(){ root.trigger.overlay = true; });
sTracker.track("showOverlay"); // tracker
else {
root.holderObj.overlay.fadeIn(function(){ root.trigger.overlay = true; });
},delay);
hide: function(delay) {
delay = delay || false;
var root = this.root;
if (!root.trigger.overlay) { return false; } // if already closed
delay = (isNaN(delay)) ? 0 : delay; // delayed hide
setTimeout(function(){
root.holderObj.overlay.fadeOut(root._timer.overlay.fadeOut,function(){ root.trigger.overlay = false; });
sTracker.track("hideOverlay"); // tracker
},delay);
setReplay: function(isReplay) {
var root = this.root;
var overlay = root.holderObj.overlay;
var firstList = overlay.find(".slideshow-feature .slideshow ul").children().filter(":first");
var divs = firstList.children();
var replayDiv = divs.filter(":first");
var cloneDiv = replayDiv.next();
function configInfo(elm) {
var currentSS = root._data.items;
var info = root._info;
var count = currentSS.length;
var first = currentSS[0];
var slideshowTitle = (info.title.length > 16) ? info.title.substring(0,16) + "..." : info.title;
var slideshowImg = first.media.tm;
var slideshowDate = info.title.date;
function replay() {
root.replaySlideshow();
var items = elm.children();
items.filter("p.photo-count").html(count + " image" + [[count>1) ? "s" : ""]];
items.filter("p.date").html(slideshowDate);
items.filter("p.photo").each(function(){
var item = $(this);
item.find("a").attr({ href: "#", title: slideshowTitle });
item.find("img").attr({ alt: slideshowTitle, src: slideshowImg });
items.filter("h4").each(function(){
var item = $(this);
item.find("a").attr("href","#").html(slideshowTitle);
items.find("a").unbind("click").click(function(){
replay();
return false;
elm.hover(function(){
elm.css("cursor","pointer");
},function(){
elm.css("cursor","");
}).unbind("click").click(function(){
replay();
return false;
if (replayDiv.children().size()</u>0) {
replayDiv.html(cloneDiv.html());
configInfo(replayDiv);
if (isReplay) {
replayDiv.addClass("active").show();
cloneDiv.hide();
} else {
replayDiv.hide();
cloneDiv.show();
SlideShows.prototype.helper = {
toNum: function(item) {
item = (isNaN(item)) ? parseInt(item.replace(/[a-zA-z]/gi,""),10) : item;
return isNaN(item)?0:item;
imgLoad: function(obj,fn) {
var SH = this;
obj.alt = obj.alt || "";
if (obj.preload && !$.browser.opera) { // opera =/= img.onload
if (obj.mainHolder) { obj.mainHolder.css({ background:"url("+obj.preloaderSrc+") no-repeat center" }); }
var img = new Image();
obj.holder.css({ display:"inline", opacity:"0" });
img.onload = function() {
if (obj.outer) {
if (img.height > SH.toNum(obj.outer.minHeight)) { obj.outer.holder.css("height","auto"); }
else { obj.outer.holder.css("height",obj.outer.minHeight); }
obj.holder.attr("src",obj.src).animate({ opacity:"1"},obj.speed,"linear",function(){
if (obj.mainHolder) { obj.mainHolder.css({ backgroundImage:"none" }); }
$(this).attr("alt",obj.alt);
fn();
img.src = obj.src;
} else {
if (obj.mainHolder) { obj.mainHolder.css({ backgroundImage:"none" }); }
obj.holder.css({ display:"inline", opacity:"0" });
obj.holder.attr({
src: obj.src,
alt: obj.alt
}).animate({ opacity:"1"},obj.speed,"linear",function(){ fn(); });
getHash: function() {
var hash = (window.location.hash).substr(1);
if (hash) {
var pairs = hash.split('&');
var valuePair = {};
for (var x=0;x 1 && callback && count%freq<u>0) {
callback(data);
var sTracker = new Trackers(); // private
function showToConsole(str) {
if (typeof window.console</u>'object') { console.log(str); }
var slideShowsPack = window.slideShowsPack = new SlideShows();
})(jQuery);
// Tracking Data Here
var trackData = {
ads: {
buildSlide: {
frequency: 1,
callback: function() {
$(document).ready(function(){
if (typeof $.ad.dc.load!=="undefined") {
$.ad.dc.load();
omni: {
buildSlide: {
frequency: 1,
callback: function(data) {
data = data || false;
if (!data) { return false; }
if (!data.slideNumber) { return false; }
if (typeof $.ad.omni.load!=="undefined") {
$.ad.omni.load({ "slide": data.slideNumber });
var initializeSlideShow = window.initializeSlideshow = function() {
if (typeof slideshowData!=="undefined") {
if (!slideShowsPack.initialized) {
slideShowsPack.init({
data: slideshowData,
info: slideshowInfo,
relatedMedia: relatedsData,
trackData: trackData
} else {
if (typeof window.console==='object') { console.log("[error] No Data found for: slideshowData"); }
This the line highlighted:
if (typeof $.ad.dc.load!=="undefined") { -
Mac mail program with complex HTML and ability to send hyperlinks?
Alright, here is the issue I've been struggling with forever.
I'm responsible for sending out my band's emails to our mailing list. I need to add hyperlinks and insert pictures that will show up in the body of the email for both mac and PC users.
In Mac mail with Panther, my hyperlinks come out fine for both Macs and PC users. However, my inserted pictures show up in the body of the email only for other Mac users. Most PC users only see the pics as attachments not in the body of the email.
I've also tried Entourage X, but the opposite problem occurs. Using HTML mode, my pictures always show up in the body of the email for both PC and Mac users, but when I'm in HTML mode there is no way to add hyperlinks.
What is my solution here? Does anyone use other email programs that would allow me to fix the problem. Perhaps I need to compose complex HTML messages in order to ensure hyperlinks and pics appear in the body of emails? If you agree with this, where would I begin to learn how to do this?
Please help!
DannyI have been searching for how to create custom HTML emails in Mail, in a way that would work with OS 10.3 and 10.4, so as not to rely on the user having Tiger. After reading through many posts, I came up with a script that creates a new HTML message that you can still edit in Mail itself before sending, and you don't need Safari 2. I'm new to scripting so please let me know if this is useful.
Jodain
Part I: defines the HTML code; you can make something in the script itself as long as the string this_html ends up in proper formatting. I actually came up with this primarily for pasting most the html code in the script itself, with a few changing variables. If you do paste or type html code in the script, make sure you use \\ for every \, and \" for every ". If you're using TextEdit to alter the html, use find and replace in that order (\:\\ then ":\").
Part II: builds a message in Mail with the html content... an undocumented property of a Mail message. However, it only works when visibility is false, so unless you send it right away, the user is not able to still type the recipients and edit the body in Mail as he/she might be used to. Which brings me to...
Part III: takes the saved draft and opens it up for editing. The open command only lets you view the message, even if it is outgoing, so I had to come up with a work-around so you can still edit as if you're composing it for the first time.
--Part I
tell application "Safari" to set this_html to source of document 1
tell application "Safari" to set this_page to name of document 1
--Part II
tell application "Mail"
activate
set theMsg to make new outgoing message with properties ¬
{subject:this_page, html content:this_html & ¬
return & return, content:""}
tell theMsg to make new to recipient
save theMsg
--Part III
if not (exists the front message viewer) then make new ¬
message viewer
tell front message viewer
set selected mailboxes to {the drafts mailbox}
set sort column to date received column
set sorted ascending to false
delay 3
set selected messages to {first message}
tell application "System Events" to tell process ¬
"Mail" to keystroke return
end tell
end tell -
Hi, i've a problem with the boot of the entity beans.
My entity beans extends a class in which there is a definition of a public variable Long which there isn't defined in the bean but it is in the ejb-jar.xml as cmp-field and in the weblogic-ejb-extensions as attribute map.
The weblogic.ejbc -i ejb-jar.xml -x weblogic-ejb-extensions.xml doesn't give me exception, but when i boot the application (tmboot -y) i've this log :
ERROR: While deploying bean it.sella.anagrafe.evento.EventoEJB
java.lang.NoSuchFieldException: id
174943.dcsv01!JavaServer.7981: main: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.evento.EventoEJB
: The EJB Container received weblogic.ejb.common.DeploymentException: EJB_CAT:28: ERROR: While deploying bean
it.sella.anagrafe.evento.EventoEJB :
java.lang.NoSuchFieldException: id while setting container managed persistence.
Could you help me?
RegardsMary Ann Slavin <[email protected]> wrote:
Error 28 indicates that there is a problem with the deployment descriptor. Check that -- ERROR 28: Make sure the deployable JAR contains a compliant deployment descriptor.
There are following the two xml files, The EventoBean class, the EntityBeanAdapter class extended by EventoBean and the primary key class DefaultPK
This is, i think,the better way to an help.
The problem is in the boot of the application( the same works fine with WLS5.1)
ejb-jar.xml
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>it.sella.anagrafe.evento.EventoEJB</ejb-name>
<home>it.sella.anagrafe.evento.EventoHome</home>
<remote>it.sella.anagrafe.evento.Evento</remote>
<ejb-class>it.sella.anagrafe.evento.EventoBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>it.sella.ejb.DefaultPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>soggettoId</field-name>
</cmp-field>
<cmp-field>
<field-name>compatibleInstanceId</field-name>
</cmp-field>
<cmp-field>
<field-name>compatibleTypeId</field-name>
</cmp-field>
<cmp-field>
<field-name>rightPk</field-name>
</cmp-field>
<cmp-field>
<field-name>value</field-name>
</cmp-field>
<cmp-field>
<field-name>dateValue</field-name>
</cmp-field>
<env-entry>
<env-entry-name>counterHomeName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>it.sella.counter.CounterHome</env-entry-value>
</env-entry>
<resource-ref>
<res-ref-name>jdbc/clientPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>it.sella.anagrafe.evento.EventoEJB</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
weblogic-ejb-extensions.xml
<!DOCTYPE weblogic-ejb-extensions SYSTEM "weblogic-ejb-extensions.dtd" >
<weblogic-ejb-extensions>
<weblogic-enterprise-bean>
<ejb-name>it.sella.anagrafe.evento.EventoEJB</ejb-name>
<weblogic-deployment-params>
<!-- <max-beans-in-free-pool>20</max-beans-in-free-pool>-->
<!-- <max-beans-in-cache>1000</max-beans-in-cache>-->
<!--<idle-timeout-seconds>5</idle-timeout-seconds>-->
<!-- JNDI name that is associated with this EJB;used for lookup -->
<jndi-name>it.sella.anagrafe.evento.EventoHome</jndi-name>
<!-- This is CMP EJB. Specify persistence information -->
<persistence-store-descriptor>
<is-modified-method-name>isModified</is-modified-method-name>
<!--<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>-->
<!--<db-is-shared>false</db-is-shared>-->
<persistence-store-jdbc>
<!-- Pool name is looked up by the EJB source -->
<pool-name>jdbc/clientPool</pool-name>
<!-- *** DATABASE INFORMATION SPECIFIC TO INSTALLATION SITE *** -->
<user>ssil</user>
<!-- Default password URL is for Oracle 8i-->
<password>ssil</password>
<!-- Default driver URL is for Oracle 8i,
and default instance Beq-Local is used
-->
<driver-url>jdbc:oracle:thin:@171.97.1.5:1521:th2o</driver-url>
<table-name>an_tr_evento</table-name>
<!-- Default user URL is for Oracle 8i-->
<!-- CMP Fields and database table column mapping-->
<attribute-map>
<attribute-map-entry>
<bean-field-name>id</bean-field-name>
<table-column-name>ev_evento_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>soggettoId</bean-field-name>
<table-column-name>ev_soggetto_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>compatibleInstanceId</bean-field-name>
<table-column-name>ev_compatible_instance_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>compatibleTypeId</bean-field-name>
<table-column-name>ev_compatible_type_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>value</bean-field-name>
<table-column-name>ev_value</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>dateValue</bean-field-name>
<table-column-name>ev_date_value</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>rightPk</bean-field-name>
<table-column-name>ev_right_pk</table-column-name>
</attribute-map-entry>
</attribute-map>
<!-- Finder Specifications -->
<finder-descriptor>
<description>
Find method to get accounts with balance over the parameter.
</description>
<method>
<ejb-name>
it.sella.anagrafe.documento.DocumentoHome
</ejb-name>
<method-name>
findBySoggettoId(Long long1)
</method-name>
</method>
<query-grammar>
(= soggettoId $long1)
</query-grammar>
</finder-descriptor>
</persistence-store-jdbc>
</persistence-store-descriptor>
</weblogic-deployment-params>
</weblogic-enterprise-bean>
</weblogic-ejb-extensions>
EventoBean class
package it.sella.anagrafe.evento;
import it.sella.ejb.EntityBeanAdapter;
import java.rmi.RemoteException;
import java.sql.Timestamp;
public class EventoBean extends EntityBeanAdapter
public Long soggettoId;
public Long compatibleInstanceId;
public Long compatibleTypeId;
public String value;
public Timestamp dateValue;
public Long rightPk;
public EventoBean()
protected Long getCounterInitVal()
return new Long(1000L);
public Timestamp getDateValue()
throws RemoteException
return dateValue;
public Long getInstanceId()
throws RemoteException
return compatibleInstanceId;
public Long getRightPk()
throws RemoteException
return rightPk;
public Long getSoggettoId()
throws RemoteException
return soggettoId;
public Long getTypeId()
throws RemoteException
return compatibleTypeId;
public String getValue()
throws RemoteException
return value;
public void setDateValue(Timestamp timestamp)
throws RemoteException
dateValue = timestamp;
setModified(true);
public void setInstanceId(Long long1)
throws RemoteException
compatibleInstanceId = long1;
setModified(true);
public void setRightPk(Long long1)
throws RemoteException
rightPk = long1;
setModified(true);
public void setSoggettoId(Long long1)
throws RemoteException
soggettoId = long1;
setModified(true);
public void setTypeId(Long long1)
throws RemoteException
compatibleTypeId = long1;
setModified(true);
public void setValue(String s)
throws RemoteException
value = s;
setModified(true);
EntityBeanAdapter class
package it.sella.ejb;
import it.sella.ejb.counter.Counter;
import it.sella.ejb.counter.CounterGenerationException;
import it.sella.ejb.counter.CounterHome;
import it.sella.ejb.counter.CounterPK;
import it.sella.ejb.link.ILink;
import java.beans.*;
import java.io.PrintStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.rmi.RemoteException;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
// Referenced classes of package it.sella.ejb:
// EnterpriseBeanAdapter, IEJBView, IEJBEntityObject, DefaultPK,
// IEntityBean, IPrimaryKey
public abstract class EntityBeanAdapter extends EnterpriseBeanAdapter
implements IEntityBean
public Long id;
private EntityContext entityContext;
private transient boolean isModified;
private static transient String counterHomeName = "CounterHome";
private static transient CounterHome counterHome;
private transient boolean beanRemovable;
private transient Counter counter;
private Class ejbViewClass;
public EntityBeanAdapter()
beanRemovable = false;
protected Long getCounterInitVal()
return new Long(-1L);
public void ejbActivate()
throws RemoteException
log(3, "ejbActivate (" + this + ")");
public void ejbLoad()
throws RemoteException
log(3, "ejbLoad: (" + this + ")");
setModified(false);
public IPrimaryKey ejbCreate(IEJBView ejbView)
throws RemoteException, CreateException
log(3, "ejbCreate: (" + this + ") from (" + ejbView + ")");
ejbCreate();
setAttributesFromEJBView(ejbView);
setModified(false);
return getPrimaryKey();
public void ejbPostCreate(IEJBView ejbView)
throws RemoteException, CreateException
log(3, "ejbPostCreate: (" + this + ") from (" + ejbView + ")");
public IPrimaryKey ejbCreate()
throws RemoteException, CreateException
System.out.println("inside ejbCreate");
log(3, "ejbCreate: (" + this + ")");
setPrimaryKeyID(getNextId());
System.out.println("After setPrimaryKeyID in EBA");
System.out.println("before defaultvalue setting in EBA with pk val" + getPrimaryKeyID().toString());
setAttributesWithDefaultValues();
setModified(false);
System.out.println("before return in ejbCreate() in EBA with pk val" + getPrimaryKeyID().toString());
return getPrimaryKey();
public void ejbPostCreate()
throws RemoteException, CreateException
log(3, "ejbPostCreate: (" + this + ")");
public void setAttributesWithDefaultValues()
throws CreateException
public void setAttributesFromEJBView(IEJBView ejbView)
throws CreateException
try
setEJBEntityPropertiesFromEJBView(ejbView);
catch(InvocationTargetException e)
e.printStackTrace();
throw new CreateException(e.getMessage());
catch(IntrospectionException e)
e.printStackTrace();
throw new CreateException(e.getMessage());
catch(IllegalAccessException e)
e.printStackTrace();
throw new CreateException(e.getMessage());
protected void setEJBEntityPropertiesFromEJBView(IEJBView ejbView)
throws IllegalAccessException, IntrospectionException, InvocationTargetException
Class ejbViewClass = ejbView.getClass();
BeanInfo ejbViewInfo = Introspector.getBeanInfo(ejbViewClass);
PropertyDescriptor ejbViewProps[] = ejbViewInfo.getPropertyDescriptors();
for(int n = 0; n < ejbViewProps.length; n++)
Method ejbViewGetMethod = ejbViewProps[n].getReadMethod();
if(ejbViewGetMethod == null)
continue;
try
StringBuffer setMethodName = (new StringBuffer("set")).append(ejbViewProps[n].getName());
setMethodName.setCharAt(3, Character.toUpperCase(setMethodName.charAt(3)));
Method ejbEntityObjectSetMethod = getClass().getMethod(setMethodName.toString(), new Class[] {
ejbViewProps[n].getPropertyType()
Object args[] = new Object[1];
args[0] = ejbViewGetMethod.invoke(ejbView, new Object[0]);
ejbEntityObjectSetMethod.invoke(this, args);
log(3, "method " + setMethodName);
catch(NoSuchMethodException e)
log(3, "NoSuchMethodException: " + e.getMessage());
protected void setEJBViewPropertiesFromEJBEntity(IEJBView ejbView)
throws IllegalAccessException, IntrospectionException, InvocationTargetException
Class ejbViewClass = ejbView.getClass();
BeanInfo ejbViewInfo = Introspector.getBeanInfo(ejbViewClass);
PropertyDescriptor ejbViewProps[] = ejbViewInfo.getPropertyDescriptors();
for(int n = 0; n < ejbViewProps.length; n++)
Method ejbViewSetMethod = ejbViewProps[n].getWriteMethod();
if(ejbViewSetMethod == null)
continue;
try
StringBuffer getMethodName = (new StringBuffer("get")).append(ejbViewProps[n].getName());
getMethodName.setCharAt(3, Character.toUpperCase(getMethodName.charAt(3)));
Method ejbEntityObjectGetMethod = getClass().getMethod(getMethodName.toString(), new Class[0]);
Object args[] = new Object[1];
args[0] = ejbEntityObjectGetMethod.invoke(this, new Object[0]);
ejbViewSetMethod.invoke(ejbView, args);
log(3, "method " + getMethodName);
catch(NoSuchMethodException e)
log(3, e.getMessage());
public void ejbPassivate()
throws RemoteException
log(3, "ejbPassivate (" + this + ")");
public void ejbRemove()
throws RemoveException, RemoteException
log(3, "ejbRemove (" + this + ")");
if(isBeanRemovable())
log(3, "<EBA>In ejbRemove : Bean is removable -> going to remove the linked beans(if any)");
removeLinks();
log(3, "<EBA>In ejbRemove : links are removed(if any)");
} else
throw new RemoveException("Could not Remove EJBean. Possible Cause -> IsBeanRemovable env-entry Property for this bean or its linked beans(Aggregated) in their ejb-jar xml file not set or set as False");
public void ejbStore()
throws RemoteException
log(3, "ejbStore (" + this + ")");
setModified(false);
public final boolean isModified()
return isModified;
public final void setModified(boolean modified)
isModified = modified;
protected final EntityContext getEntityContext()
return entityContext;
public final void setEntityContext(EntityContext context)
throws RemoteException
InitialContext ctx = null;
log(3, "setEntityContext (" + this + ")");
entityContext = context;
log(3, "In setEntityContext - context set and = " + entityContext.toString());
try
ctx = new InitialContext();
setCounterHomeName((String)ctx.lookup("java:comp/env/counterHomeName"));
String beanRemovableFlag = (String)ctx.lookup("java:comp/env/isBeanRemovable");
if(beanRemovableFlag.equalsIgnoreCase("true"))
setBeanRemovable(Boolean.TRUE.booleanValue());
else
if(beanRemovableFlag.equalsIgnoreCase("false"))
setBeanRemovable(Boolean.FALSE.booleanValue());
else
throw new IllegalArgumentException("Could not take the environment entry for IsBeanRemovable ");
catch(NamingException ne)
setCounterHomeName("it.sella.counter.CounterHome");
setBeanRemovable(Boolean.FALSE.booleanValue());
log(3, "Naming Exception Default Exception");
finally
try
ctx.close();
catch(Exception exception1) { }
public final void unsetEntityContext()
throws RemoteException
log(3, "unsetEntityContext (" + this + ")");
entityContext = null;
protected String getEJBViewClassName(IEntityBean entity)
String ejbEntityClassName = entity.getClass().getName();
StringBuffer tmp = new StringBuffer(ejbEntityClassName);
tmp.replace(ejbEntityClassName.lastIndexOf("Bean"), ejbEntityClassName.length(), "View");
return tmp.toString();
private Class getEJBViewClass(IEntityBean entity)
throws ClassNotFoundException
if(ejbViewClass == null)
ejbViewClass = Class.forName(getEJBViewClassName(entity), true, entity.getClass().getClassLoader());
return ejbViewClass;
public final IEJBView getEJBView()
IEJBView ejbView;
try
ejbView = (IEJBView)getEJBViewClass(this).newInstance();
setEJBViewPropertiesFromEJBEntity(ejbView);
catch(Exception e)
e.printStackTrace();
throw new RuntimeException(e.getMessage());
return ejbView;
public final String getEJBViewString()
return getEJBView().toString();
public String toString()
return super.toString();
public final IEJBEntityObject getEJBObject()
return (IEJBEntityObject)getEntityContext().getEJBObject();
private Counter getCounter()
throws CounterGenerationException
if(counter == null)
try
counter = (Counter)PortableRemoteObject.narrow(getCounterHome().findByPrimaryKey(new CounterPK(getHomeInterfaceClassName())), Class.forName("it.sella.ejb.counter.Counter"));
catch(RemoteException nex)
throw new CounterGenerationException("Remote exception in getCounter() during findByPrimaryKey" + nex.getLocalizedMessage());
catch(NamingException nex)
throw new CounterGenerationException("Naming exception in getCounter() during findByPrimaryKey" + nex.getLocalizedMessage());
catch(FinderException fex)
try
counter = (Counter)PortableRemoteObject.narrow(getCounterHome().create(getHomeInterfaceClassName(), getCounterInitVal()), Class.forName("it.sella.ejb.counter.Counter"));
catch(CreateException cex)
throw new CounterGenerationException("Create exception in getCounter() during create - Counter could not be created!!!" + cex.getLocalizedMessage());
catch(RemoteException nex)
throw new CounterGenerationException("Remote exception in getCounter() during create - Counter could not be created!!!" + nex.getLocalizedMessage());
catch(NamingException nex)
throw new CounterGenerationException("Naming exception in getCounter() - during create - Counter could not be created!!!" + nex.getLocalizedMessage());
return counter;
private static CounterHome getCounterHome()
throws NamingException
if(counterHome == null)
Context ctx = new InitialContext();
counterHome = (CounterHome)ctx.lookup(counterHomeName);
return counterHome;
private Long getNextId()
throws CounterGenerationException
try
Long long1 = getCounter().getNextId();
return long1;
catch(RemoteException nex)
nex.printStackTrace();
throw new CounterGenerationException("Remote exception while calling counter.getNextId()" + nex.getLocalizedMessage());
public IPrimaryKey getPrimaryKey()
System.out.println("in getPrimaryKey():" + getPrimaryKeyID());
return new DefaultPK(getPrimaryKeyID());
private void setPrimaryKey(IPrimaryKey pk)
throws IllegalAccessException
throw new IllegalAccessException("This method cannot be called directly.");
private String getHomeInterfaceClassName()
throws RemoteException
return getEntityContext().getEJBHome().getEJBMetaData().getHomeInterfaceClass().getName();
public Long getPrimaryKeyID()
System.out.println("id in getPrimaryKeyId :" + id);
return id;
private void setPrimaryKeyID(Long id)
System.out.println("<<Eba>>setPrimaryKeyID:" + id.toString());
this.id = id;
public String getCounterHomeName()
return counterHomeName;
private void setCounterHomeName(String newCounterHomeName)
counterHomeName = newCounterHomeName;
private Collection getLinks()
throws RemoveException
String prefix = "get";
String suffix = "Link";
Vector links = new Vector();
Method beanMethods[] = null;
try
beanMethods = getClass().getMethods();
for(int i = 0; i < beanMethods.length; i++)
log(3, "<EBA> beanMethods: " + beanMethods.getName());
if(beanMethods[i].getName().endsWith(suffix) && beanMethods[i].getName().startsWith(prefix))
ILink curLink = (ILink)beanMethods[i].invoke(this, null);
links.add(curLink);
log(3, "<EBA> ILink object " + curLink);
catch(Exception e)
log(3, "<EBA> Error in in getLinks()-> " + e.getMessage());
throw new RemoveException("Error in in getLinks()" + e.getMessage());
return links;
protected boolean isBeanRemovable()
return beanRemovable;
private void setBeanRemovable(boolean removeFlag)
beanRemovable = removeFlag;
private void removeLinks()
throws RemoveException
log(3, "<EBA> in removeLinks() -> before getLinks()");
Collection links = getLinks();
if(!links.isEmpty())
log(3, "<EBA> in removeLinks() -> linked objects exists");
ILink linkToDestroy;
for(Iterator it = links.iterator(); it.hasNext(); linkToDestroy.destroyLink())
linkToDestroy = (ILink)it.next();
DefaultPK class
package it.sella.ejb;
// Referenced classes of package it.sella.ejb:
// IPrimaryKey
public class DefaultPK
implements IPrimaryKey
public Long id;
public DefaultPK()
public DefaultPK(Long id)
setId(id);
public Long getId()
return id;
protected void setId(Long id)
this.id = id;
public String toString()
return "Id=" + getId();
public int hashCode()
return getId() == null ? 0 : getId().hashCode();
public boolean equals(Object obj)
if(obj != null && (obj instanceof DefaultPK))
return getId() != null && getId().equals(((DefaultPK)obj).getId());
else
return false; -
Hi ,
I was using the DDConvertor supplied with WL51 to convert my old
DeploymentDescriptor.txt to the new XML format.
I have noticed that the Isolation Level did not pass to the new format.
My entity bean is not container managed and the Isolation level is
READ_COMMITED .
No weblogic-cmp-rdbms-jar.xml File was generated.
Attached are the files.
Could you please tell me where can I specify the Isolation Level if I have
no rdbms file ?
thanks
Amit Sivan
[DeploymentDescriptor.txt]
[weblogic-ejb-jar.xml]weblogic-ejb-jar.xml
amit sivan wrote:
Hi ,
I was using the DDConvertor supplied with WL51 to convert my old
DeploymentDescriptor.txt to the new XML format.
I have noticed that the Isolation Level did not pass to the new format.
My entity bean is not container managed and the Isolation level is
READ_COMMITED .
No weblogic-cmp-rdbms-jar.xml File was generated.
Attached are the files.
Could you please tell me where can I specify the Isolation Level if I have
no rdbms file ?
thanks
Amit Sivan
; Copyright (c) 1998-1999 by BEA WebXpress. All Rights Reserved.
(EntityDescriptor
beanHomeName pay2card.OnlineHomeEntity
enterpriseBeanClassName pay2card.beans.online.entity.OnlineEntityBean
homeInterfaceClassName pay2card.beans.online.entity.OnlineEntityHome
remoteInterfaceClassName pay2card.beans.online.entity.OnlineEntity
isReentrant false
(accessControlEntries
; DEFAULT [admin manager]
); end accessControlEntries
(controlDescriptors
(DEFAULT
isolationLevel TRANSACTION_READ_COMMITTED
transactionAttribute TX_REQUIRED
runAsMode CLIENT_IDENTITY
; runAsIdentity admin
); end DEFAULT
); end controlDescriptors
(environmentProperties
; homeClassName
; ejbObjectClassName
maxBeansInFreePool 20
maxBeansInCache 1000
idleTimeoutSeconds 60
; isModifiedMethodName isModified
); end environmentProperties
; Entity EJBean-specific properties:
primaryKeyClassName pay2card.beans.online.entity.OnlinePK
; end entity EJBean-specific properties.
); end EntityDescriptor
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC '-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN' 'http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>pay2card.OnlineHomeEntity</ejb-name>
<caching-descriptor>
<max-beans-in-free-pool>20</max-beans-in-free-pool>
<max-beans-in-cache>1000</max-beans-in-cache>
<idle-timeout-seconds>60</idle-timeout-seconds>
</caching-descriptor>
<persistence-descriptor>
<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>
</persistence-descriptor>
<jndi-name>pay2card.OnlineHomeEntity</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar> -
Is this OnDemand process secure?
Hello,
I'm using the jQuery autocomplete method along with an OnDemand application process to return a list of user's based on whats being typed in my input box. I want to make sure that it's not vulnerable to sql injecton. Can anyone tell me if this is safe or not?
Application Express 3.2.1.00.12
Here's the code in question.
Application Process:
DECLARE
l_sql VARCHAR2(32000);
BEGIN
l_sql := '
select full_name, position_name, rowid
from emp
where 1=1
and upper(full_name) like ''%'|| upper(apex_application.g_x01) || '%''
order by 1
APEX_UTIL.JSON_FROM_SQL(l_sql);
EXCEPTION
WHEN OTHERS THEN
HTP.p ('{"row":[]}');
END;jQuery:
<script type="text/javascript">
$(function(){
$("#P300_NEXT_APPROVER").autocomplete({
source: function(r,s){
$.ajax({
type:"POST",
url:"wwv_flow.show",
dataType:"json",
data:{
p_flow_id:$v('pFlowId'),
p_instance:$v('pInstance'),
p_flow_step_id:$v('pFlowStepId'),
x01:$v('P300_NEXT_APPROVER'),
p_request:"APPLICATION_PROCESS=EmployeeAutocomplete"},
success:function(d){
s($.map(d.row,function(l){
return{
label:l.FULL_NAME +" - "+ l.POSITION_NAME, number:l.ROWID
select: function( event, ui ) {
$( "#P300_NEXT_APPROVER" ).addClass("hide").val("");
$( "#P300_NEXT_APPROVER_TITLE" ).html( ui.item.label);
$( "#P300_NEXT_APPROVER_ROWID" ).val( ui.item.number);
return false;
delay: 500,
minlength: 2,
open:function(){$(this).removeClass("ui-corner-all").addClass("ui-corner-top");},
close:function(){$(this).removeClass("ui-corner-top").addClass("ui-corner-all");}});
</script>Thanks in advance,
DanielHi,
You could create application item. Set app item Session State Protection to Restricted - May not be set from browser
Then change process
DECLARE
l_sql VARCHAR2(32000);
BEGIN
:MY_APP_ITEM := '%' || upper(apex_application.g_x01) || '%';
l_sql := '
select full_name, position_name, rowid
from emp
where 1=1
and upper(full_name) like :MY_APP_ITEM
order by 1
APEX_UTIL.JSON_FROM_SQL(l_sql);
EXCEPTION
WHEN OTHERS THEN
HTP.p ('{"row":[]}');
END;Regards,
Jari
My Blog: http://dbswh.webhop.net/htmldb/f?p=BLOG:HOME:0
Twitter: http://www.twitter.com/jariolai -
Problem in creating jar for ejb
hi,
I want just to try to compile and deploy my ejb in the new version of bea weblogic
server (version 8.1 trial version), but I have the problem when using weblogic.ejbc
to create the jar file.
There is no such problem when using weblogic 6.x, I can create the jar package
of my ejb and deploy it within the server.
I did this :
java weblogic.ejbc stage/temp_myejb.jar stage/my_ejb.jar
and I got the error message :
ERROR: Error creating descriptor from jar file stage/temp_myejb.jar:
ERROR: Error from ejbc: 1
java.lang.ArrayIndexOutOfBoundsException: 1
at weblogic.ejb20.dd.xml.DDUtils.createDescriptorFromJarFile(DDUtils.java:222)
at weblogic.ejb20.dd.xml.DDUtils.createDescriptorFromJarFile(DDUtils.java:97)
at weblogic.ejbc20.getDescriptorFromJar(ejbc20.java:698)
at weblogic.ejbc20.runBody(ejbc20.java:459)
at weblogic.utils.compiler.Tool.run(Tool.java:146)
at weblogic.utils.compiler.Tool.run(Tool.java:103)
at weblogic.ejbc.main(ejbc.java:29)
ERROR: ejbc couldn't load descriptor from jar
I do verify that the weblogic-ejb-jar.xml and ejb-jar.xml have been included in
temp_myejb.jar but why the compiler cannot load the descriptor ?
This is my weblogic-ejb-jar.xml :
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN"
"http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>MemberHome</ejb-name>
<caching-descriptor>
<max-beans-in-free-pool>20</max-beans-in-free-pool>
<max-beans-in-cache>100</max-beans-in-cache>
<idle-timeout-seconds>10</idle-timeout-seconds>
</caching-descriptor>
<persistence-descriptor>
<is-modified-method-name>isModified</is-modified-method-name>
<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>
</persistence-descriptor>
<jndi-name>MemberHome</jndi-name>
</weblogic-enterprise-bean>
<security-role-assignment>
<role-name>EjbClient</role-name>
<principal-name>RemoteUser</principal-name>
</security-role-assignment>
</weblogic-ejb-jar>
Is there something I missed ?
Many thanks in advance.
best regards,
Victorianus Kapuanganhi Deepak,
Thanks for the answer.
I do put the ejb-jar.xml and the weblogic-ejb-jar.xml in the META-INF dir of the
temp_my_ejb.jar file. I use the bmp entity bean so I guess I do not need to put
the weblogic-cmp-rdbms-jar.xml.
Should I missed to put these deployment descriptors in the META-INF, I should
not then be able to deploy my ejb in weblogic 6.x. But in fact I can deploy it
using weblogic 6.x.
TIA.
regards,
Victorianus
"Deepak Vohra" <[email protected]> wrote:
>
The input jar file, temp_myejb.jar should have ejb-jar.xml, weblogic-ejb-jar.xml
& weblogic-cmp-rdbms-jar.xml, for cmp entity bean, in the META-INF dir.
"Victorianus Kapuangan" <[email protected]> wrote:
hi,
I want just to try to compile and deploy my ejb in the new version of
bea weblogic
server (version 8.1 trial version), but I have the problem when using
weblogic.ejbc
to create the jar file.
There is no such problem when using weblogic 6.x, I can create the jar
package
of my ejb and deploy it within the server.
I did this :
java weblogic.ejbc stage/temp_myejb.jar stage/my_ejb.jar
and I got the error message :
ERROR: Error creating descriptor from jar file stage/temp_myejb.jar:
ERROR: Error from ejbc: 1
java.lang.ArrayIndexOutOfBoundsException: 1
at weblogic.ejb20.dd.xml.DDUtils.createDescriptorFromJarFile(DDUtils.java:222)
at weblogic.ejb20.dd.xml.DDUtils.createDescriptorFromJarFile(DDUtils.java:97)
at weblogic.ejbc20.getDescriptorFromJar(ejbc20.java:698)
at weblogic.ejbc20.runBody(ejbc20.java:459)
at weblogic.utils.compiler.Tool.run(Tool.java:146)
at weblogic.utils.compiler.Tool.run(Tool.java:103)
at weblogic.ejbc.main(ejbc.java:29)
ERROR: ejbc couldn't load descriptor from jar
I do verify that the weblogic-ejb-jar.xml and ejb-jar.xml have beenincluded
in
temp_myejb.jar but why the compiler cannot load the descriptor ?
This is my weblogic-ejb-jar.xml :
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic
5.1.0 EJB//EN"
"http://www.bea.com/servers/wls510/dtd/weblogic-ejb-jar.dtd">
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>MemberHome</ejb-name>
<caching-descriptor>
<max-beans-in-free-pool>20</max-beans-in-free-pool>
<max-beans-in-cache>100</max-beans-in-cache>
<idle-timeout-seconds>10</idle-timeout-seconds>
</caching-descriptor>
<persistence-descriptor>
<is-modified-method-name>isModified</is-modified-method-name>
<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>
</persistence-descriptor>
<jndi-name>MemberHome</jndi-name>
</weblogic-enterprise-bean>
<security-role-assignment>
<role-name>EjbClient</role-name>
<principal-name>RemoteUser</principal-name>
</security-role-assignment>
</weblogic-ejb-jar>
Is there something I missed ?
Many thanks in advance.
best regards,
Victorianus Kapuangan -
How to use Script Editor to open iTunes visualizer?
I have an AppleScript which I used to use in previous versions of OS X to open a visualizer and put it into full screen if music was currently playing. If no music was playing, then it would turn off the visualizer and take iTunes out of full screen. This script still works, but only if iTunes is already open and you can see iTunes on the desktop. If iTunes is open with music playing, but not visible(not visible on the desktop aka minimized or you clicked the red "x" to close iTunes, but not actually quit it), then I get the error...
"Can’t set «class pVsE» of application "iTunes" to true.
iTunes got an error: Can’t set visuals enabled to true. (-10006)"
How can I fix this error so it no longer happens?
I believe I just need to find a way to bring iTunes to the desktop, even if it's already open. Again, it works just fine if you can see iTunes on the desktop
Any suggestions?
I am using Mac OS X Yosemite 10.10.3.
Thanks for any help!
Here is the Apple Script...
tell application "iTunes"
activate
delay 1
if player state is playing then
if visuals enabled is true then
set full screen to false
delay 3
set visuals enabled to false
else if visuals enabled is false then
set visuals enabled to true
set full screen to true
end if
end if
end tellThe visualizer appears to be bound to the browser window - if there is no browser window, enabling the visualized fails.
The simplest solution, therefore, may be to show the browser window before trying to enable the visualizer:
else if visuals enabled is false then
set visible of browser window 1 to true -- add this line to show the browser window
set visuals enabled to true
set full screen to true
end if -
ORAMED-01002:[Metadata error in assign operation]
Im using the Oracle Mediator component to assign an expression to a property. The assign expression uses the dvm:lookupValue() function to assign the outcome of the function to the property. When I invoke a message from e.g. SoapUI or the em testfeature it all works perfect. But when I use a testsuite with an initiate message that is similar to the request from SoapUI, the message fails with the following error:
Non Recoverable System Fault:
ORAMED-01002:[Metadata error in assign operation]Metadata Error occurred while assigning to target "$out.property.jca.db.XADataSourceName" using invalid expression "dvm:lookupValue("oramds:/apps/dvm/RegioCode.dvm","RegioCode",$in.request/sadr:GetHoofdaanvragerAdressenRequest/ns6:PersoonKey/ns5:RegioCode,"Datasource","jdbc/DoNotUse")".Possible Fix:Fix the expression. Cause:internal xpath error
Invoke via SoapUI results in the following instance message fragment:
<message>
Assigned "dvm:lookupValue("oramds:/apps/dvm/RegioCode.dvm","RegioCode",$in.request/sadr:GetHoofdaanvragerAdressenRequest/ns6:PersoonKey/ns5:RegioCode,"Datasource","jdbc/DoNotUse")" to "$out.property.jca.db.XADataSourceName"
</message>
Any suggestions.
Regards,
MelvinHi Clemens,
We've reported a service request on metalink regarding this issue. See : 3-1154677691
I've summarized the messages for you:
A SoapUI message that works:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adr="http://www.xyz.nl/Services/AdresService"
xmlns:geb="http://www.xyz.nl/Contracten/Gebruiker"
xmlns:elem="http://www.xyz.nl/Contracten/Common/Elementen" xmlns:obj="http://www.xyz.nl/Contracten/Aanbod/Object">
<soapenv:Header/>
<soapenv:Body>
<adr:GetObjectAdresRequest>
<geb:Autorisatie>
<elem:Gebruikersnaam>xxx</elem:Gebruikersnaam>
<elem:Locale>nl-NL</elem:Locale>
<elem:Kanaal>1</elem:Kanaal>
</geb:Autorisatie>
<obj:ObjectKey>
<geb:Autorisatie>
<elem:Gebruikersnaam>xxx</elem:Gebruikersnaam>
<elem:Locale>xxx</elem:Locale>
<elem:Kanaal>x</elem:Kanaal>
</geb:Autorisatie>
<elem:RegioCode>xxx</elem:RegioCode>
<elem:Type>0</elem:Type>
<elem:Reference>xxx</elem:Reference>
</obj:ObjectKey>
</adr:GetObjectAdresRequest>
</soapenv:Body>
</soapenv:Envelope>
The testsuite initiate message which fails :
<GetObjectAdresRequest xmlns="http://www.xyz.nl/Services/AdresService">
<Autorisatie xmlns="http://www.xyz.nl/Contracten/Gebruiker">
<Gebruikersnaam xmlns="http://www.xyz.nl/Contracten/Common/Elementen">xxx</Gebruikersnaam>
<Locale xmlns="http://www.xyz.nl/Contracten/Common/Elementen">xxx</Locale>
<Kanaal xmlns="http://www.xyz.nl/Contracten/Common/Elementen">x</Kanaal>
</Autorisatie>
<ObjectKey xmlns="http://www.xyz.nl/Contracten/Aanbod/Object">
<RegioCode xmlns="http://www.xyz.nl/Contracten/Common/Elementen">xx</RegioCode>
<Type xmlns="http://www.xyz.nl/Contracten/Common/Elementen">x</Type>
<Reference xmlns="http://www.xyz.nl/Contracten/Common/Elementen">xx</Reference>
</ObjectKey>
</GetObjectAdresRequest>
The composite Test.xml file
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Generated by Oracle SCA Test Modeler version 1.0 at [11/12/09 8:59 AM]. -->
<compositeTest compositeDN="Adres" xmlns="http://xmlns.oracle.com/sca/2006/test">
<about/>
<initiate serviceName="AdresService_ep" operation="GetObjectAdres" isAsync="false" delay="PT0S">
<message>
<part partName="request">
<content>
<GetObjectAdresRequest xmlns="http://www.xyz.nl/Services/AdresService" xmlns:ns2="http://www.xyz.nl/Contracten/Gebruiker" xmlns:ns3="http://www.xyz.nl/Contracten/Aanbod/Object">
<ns2:Autorisatie xmlns:ns4="http://www.xyz.nl/Contracten/Common/Elementen">
<ns4:Gebruikersnaam>xxx</ns4:Gebruikersnaam>
<ns4:Locale>xxx</ns4:Locale>
<ns4:Kanaal>x</ns4:Kanaal>
</ns2:Autorisatie>
<ns3:ObjectKey xmlns:ns5="http://www.xyz.nl/Contracten/Common/Elementen">
<ns5:RegioCode>xxx</ns5:RegioCode>
<ns5:Type>x</ns5:Type>
<ns5:Reference>xxx</ns5:Reference>
</ns3:ObjectKey>
</GetObjectAdresRequest>
</content>
</part>
</message>
</initiate>
</compositeTest>
Regards,
Melvin -
Ignoring error in afterCompletion.
I just tried to force an ejbStore on an entity by:
(in weblogic-ejb-jar.xml)
<persistence-descriptor>
<is-modified-method-name>isModified</is-modified-method-name>
<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>
</persistence-descriptor>
But a StackTrace occur, and ejbStore is never called.
Any hint?
####<Apr 4, 2003 5:16:20 PM HKT> <Warning> <JTA> <internal> <cityguide>
<ExecuteThread: '3' for queue: 'default'> <> <> <000000> <Ignoring error
in afterCompletion. Object =
weblogic.ejb20.internal.TxManager$TxListener@aff2c>
java.lang.NullPointerException
at
weblogic.ejb20.locks.ExclusiveLockManager.unlock(ExclusiveLockManager.java:204)
at
weblogic.ejb20.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:426)
at
weblogic.ejb20.internal.TxManager$TxListener.afterCompletion(TxManager.java:173)
at
weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:429)
at
weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:1758)
at
weblogic.transaction.internal.ServerTransactionImpl.setCommitted(ServerTransactionImpl.java:1736)
at
weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:1628)
at
weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:1568)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:173)
at
weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:201)
at
com.metrowalker.logistics2003.model.ejb.impl.JobQueueEntityEJBEOImpl.getValueObject(JobQueueEntityEJBEOImpl.java:37)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJB.getJobQueue(JobServiceEJB.java:354)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJBImpl.getJobQueue(JobServiceEJBImpl.java:110)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJBEOImpl.getJobQueue(JobServiceEJBEOImpl.java:31)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJBEOImpl_WLSkel.invoke(JobServiceEJBEOImpl_WLSkel.java:150)
at
weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.java:373)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:128)
at
weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.java:237)
at
weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestHandler.java:118)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:17)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
####<Apr 4, 2003 5:16:21 PM HKT> <Warning> <JTA> <internal> <cityguide>
<ExecuteThread: '11' for queue: 'default'> <> <> <000000> <Ignoring
error in afterCompletion. Object =
weblogic.ejb20.internal.TxManager$TxListener@40b778>
java.lang.NullPointerException
at
weblogic.ejb20.locks.ExclusiveLockManager.unlock(ExclusiveLockManager.java:204)
at
weblogic.ejb20.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:426)
at
weblogic.ejb20.internal.TxManager$TxListener.afterCompletion(TxManager.java:173)
at
weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:429)
at
weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:1758)
at
weblogic.transaction.internal.ServerTransactionImpl.setCommitted(ServerTransactionImpl.java:1736)
at
weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:1628)
at
weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:1568)
at
weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:173)
at
weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:201)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJBEOImpl.updateJobQueue(JobServiceEJBEOImpl.java:321)
at
com.metrowalker.logistics2003.model.ejb.impl.JobServiceEJBEOImpl_WLSkel.invoke(JobServiceEJBEOImpl_WLSkel.java:347)
at
weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.java:373)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:128)
at
weblogic.rmi.internal.BasicServerAdapter.invoke(BasicServerAdapter.java:237)
at
weblogic.rmi.internal.BasicRequestHandler.handleRequest(BasicRequestHandler.java:118)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:17)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Hi,
As per the documentation, the following is the description of BEA-110401 :-
Warning: Ignoring error in afterCompletion. Object=arg1, Exception=t
Description An exception was thrown in a Synchronization.afterCompletion() synchronization callback . The exception is ignored by the Transaction Manager.
Cause The application-defined javax.transaction.Synchronization callback may have thrown an exception.
Action No action required.
Link :[http://edocs.bea.com/wls/docs92/messages/TX.html]
There is patch available to stop the messages from appearing in the log. You can open a service request with support to get the patch.
Regards. -
We're having a problem in our app which I've been able to duplicate using a simple
bank account example. In this example we're using BMP, Container managed tx's,
and all methods are marked as required. All session beans are stateless.
State prior to client call: Account A has a balance of $100.
(1) Client makes a call to BankTellerService to deposit $50 into Account A:
long depositAndGetBalance( accountId, amountToDeposit ).
All of the following are in the transaction started by the call in (1).
(2) BankTellerService calls:
void BankTransactionService.deposit( amountToDeposit )
3) BankTransactionService looks up AccountBean and increases it's balance by amountToDeposit
4) BankTellerSevice calls BalanceService to get the balance of Account A:
long BalanceService.getBalance( accountId )
5) BalanceService looks up the AccountBean for account A and returns it
6) BankTellerService returns the balance to the client
The balance returned is $100, which is identical to the initial state and does
not reflect the deposit of $50.
It appears that two seperate instances of Account A are being loaded, with the
first instance receiving the deposit, and then the second instance being loaded.
ejbStore is called sequentially, which means the the first instance stores the
correct balance of $150, and then is overwritten by the second instance with a
balance of $100.
When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
our problems are solved.
Current answers from BEA support have said that this is by design and the default
setting of delay=false causes this problem but is default for performance reasons.
I just can't accept that because that would seem to violate sectino 17.7 of the
spec, which states that the container is responsible for detecting this diamond
and resolving the problem.
Any ideas?
Thanks,
Matt
Rob,
You're the man. After testing it, I did fint that our PK class .equals method
didn't work. If you'll look at the code I sent you,it was finally testing: this.id.equals(obj)
instead of this.id.equals( ((BasePK)pk).id ).
Thanks very much for the help.
Matt Clark
Rob Woollen <[email protected]> wrote:
>
>
>The reason I asked about your primary key class is that your previous
>message shows:
>
>> //Client calls depositAndGetNewBalance on remote interface
>> //Container starts transaction
>> // Container calls depositAndGetNewBalance on bean
>> //enter BankTransactionService.deposit
>> findByPrimaryKey: Hashcode: 721349
>> ejbLoad: Balance 100 Hashcode 721349
>> getAccountVO: Balance 100 Hashcode 721349
>> setAccountVO: Balance 150 Hashcode 721349
>> //exit BankTransactionService.deposit
>>
>> //enter BalanceService.getBalance
>> findByPrimaryKey: Hashcode 2748333
>> ejbLoad: Balance 100 Hashcode 2748333
>>
>This is where I'm concerned. Assuming that the deposit call and the
>getBalance call both call the entity
>bean with the same pk in the same tx, then there should only be one
>instance used. However, here we see 2
>instances.
>
>My guess is still that your pk hashCode and equals are off. (The container
>uses them to determine whether
>there is already an instance for this pk in use.)
>
>I would suggest that you add some debug messages to your hashCode and
>equals methods. In particular, check
>that when a.equals(b), a.hashCode() == b.hashCode(). Also make sure
>that you're equals() method is not
>returning false unexpectedly.
>
>If you're still having problems, post again, and we'll go from there.
>
>-- Rob
>
>> //exit BankTellerService.getBalance
>> //exit depositAndGetNewBalance on bean
>>
>>
>> ejbStore: Balance 150 Hashcode 721349
>> ejbStore: Balance 100 Hashcode 2748333
>> //Transaction done
>> //Client deposit done
>>
>> //Client removes account
>> findByPrimaryKey: Hashcode 5932239
>> ejbLoad: Balance 100 Hashcode 5932239
>> ejbRemove: Balance 100 Hashcode 5932239
>> //Client done
>>
>Matt Clark wrote:
>
>> Rob,
>>
>> After thinking about why you asked to see the pk methods, I went and
>looked at
>> our implementation, and noticed that the hashcode method on OID is
>faulty (missing
>> some parentheses). However, afetr I fixed it we're still getting the
>same problem.
>> If I print out pk.hashCode(), I get all the same hashcode. If i print
>out System.identityHashcode(
>> pk ), I get different hashcodes, which I understand is because that
>call calls
>> Object.hashCode even if it has been overridden.
>>
>> Hope this helps,
>>
>> Matt
>>
>> "Matt Clark" <[email protected]> wrote:
>> >
>> >Sure.
>> >
>> >The BasePK class has a private attribute "id" of type OID, and here
>are
>> >the hashcode
>> >and equals methods for BasePK:
>> >
>> >public int hashCode()
>> >{
>> > int code = 0;
>> > if(id != null)
>> > {
>> > code = id.hashCode();
>> > }
>> > return code;
>> >}
>> >
>> >public boolean equals(Object obj)
>> >{
>> > if( obj == null || !(obj instanceof BasePK) )
>> > {
>> > return false;
>> > }
>> > else if( (this.id == ((BasePK)obj).id) ||
>> > (this.id != null && this.id.equals( obj ) ) )
>> > {
>> > return true;
>> > }
>> > else
>> > {
>> > return false;
>> > }
>> >}
>> >
>> >
>> >The OID class has a private attribute byteArray of type byte[16].
>It's
>> >hashcode
>> >and equals methods are:
>> >
>> >public int hashcode() {
>> > return (int)( (getMostSignificantBytes() >> 32) & 0xFFFF +
>> > (getMostSignificantBytes() ) & 0xFFFF +
>> > (getLeastSignificantBytes() >> 32 ) & 0xFFFF +
>> > (getLeastSignificantBytes() ) & 0xFFFF);
>> >}
>> >
>> >public long getMoSignificantBytes() {
>> > long mb;
>> > mb=(((long)byteArray[15])&0xFF)<<56 |
>> > (((long)byteArray[14])&0xFF)<<48 |
>> > (((long)byteArray[13])&0xFF)<<40 |
>> > (((long)byteArray[12])&0xFF)<<32 |
>> > (((long)byteArray[11])&0xFF)<<24 |
>> > (((long)byteArray[10])&0xFF)<<16 |
>> > (((long)byteArray[9])&0xFF)<< 8 |
>> > (((long)byteArray[8])&0xFF);
>> > return mb;
>> >}
>> >
>> >public long getLeastSignificantBytes() {
>> > long lsb;
>> > lsb=(((long)byteArray[7])&0xFF)<<56 |
>> > (((long)byteArray[6])&0xFF)<<48 |
>> > (((long)byteArray[5])&0xFF)<<40 |
>> > (((long)byteArray[4])&0xFF)<<32 |
>> > (((long)byteArray[3])&0xFF)<<24 |
>> > (((long)byteArray[2])&0xFF)<<16 |
>> > (((long)byteArray[1])&0xFF)<< 8 |
>> > (((long)byteArray[0])&0xFF);
>> > return lsb;
>> >}
>> >
>> >public boolean equals( Object obj ) {
>> > boolean equality = false;
>> > if( obj == this )
>> > {
>> > equality = true;
>> > }
>> > else if( obj != null && obj instanceof OID )
>> > {
>> > OID other = (OID) obj;
>> > equality = ( (other.getLeastSignificantBytes() ==
>> > getLeastSignificantBytes() ) &&
>> > (other.getMostSignificantBytes() ==
>> > getMostSignificantBytes() ) );
>> > }
>> > return equality;
>> >}
>> >
>> >
>> >Rob Woollen <[email protected]> wrote:
>> >>
>> >>
>> >>Can you show me the equals and hashCode implementations for your
>pk
>> >class?
>> >>
>> >>-- Rob
>> >>
>> >>Matt Clark wrote:
>> >>
>> >>> Rob,
>> >>>
>> >>> My BasePK implements Serializable, and contains one public member
>> >variable
>> >>of
>> >>> type OID, which is a guid (or close to it anyway :) ) byte string.
>> >>>
>> >>> When I put in debugs to print out the balance and the System.identity(hashcode)
>> >>> inside the callbacks, here is the sequence I see: (I've left out
>the
>> >>primary key
>> >>> because it is somewhat long, but I've verified that it is the same
>> >>for all calls
>> >>> represented here )
>> >>>
>> >>> //Client creates account
>> >>> ejbCreate: Balance 100 Hashcode 3452225
>> >>> getAccountVO: Balance 100 Hashcode 3452225
>> >>> ejbStore: Balance 100 Hashcode 3452225
>> >>>
>> >>> //Client calls depositAndGetNewBalance on remote interface
>> >>> //Container starts transaction
>> >>> // Container calls depositAndGetNewBalance on bean
>> >>> //enter BankTransactionService.deposit
>> >>> findByPrimaryKey: Hashcode: 721349
>> >>> ejbLoad: Balance 100 Hashcode 721349
>> >>> getAccountVO: Balance 100 Hashcode 721349
>> >>> setAccountVO: Balance 150 Hashcode 721349
>> >>> //exit BankTransactionService.deposit
>> >>>
>> >>> //enter BalanceService.getBalance
>> >>> findByPrimaryKey: Hashcode 2748333
>> >>> ejbLoad: Balance 100 Hashcode 2748333
>> >>> //exit BankTellerService.getBalance
>> >>> //exit depositAndGetNewBalance on bean
>> >>>
>> >>> ejbStore: Balance 150 Hashcode 721349
>> >>> ejbStore: Balance 100 Hashcode 2748333
>> >>> //Transaction done
>> >>> //Client deposit done
>> >>>
>> >>> //Client removes account
>> >>> findByPrimaryKey: Hashcode 5932239
>> >>> ejbLoad: Balance 100 Hashcode 5932239
>> >>> ejbRemove: Balance 100 Hashcode 5932239
>> >>> //Client done
>> >>>
>> >>> Let me know if you need any mroe detail...
>> >>>
>> >>> Matt
>> >>> Rob Woollen <[email protected]> wrote:
>> >>> >
>> >>> >
>> >>> >You're going to have to provide some more info for me to know
>what's
>> >>> >going on.
>> >>> >
>> >>> >I'd suggest that you add print messages like this to the callbacks:
>> >>> >
>> >>> >System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
>> >>> > " with pk: "+ctx.getPrimaryKey());
>> >>> >
>> >>> >Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
>> >>(also
>> >>> >any other finders that
>> >>> >you're using), and the business methods.
>> >>> >
>> >>> >Show me the output, and I'll have a look.
>> >>> >
>> >>> >Also, what class are you using for the primary key of the Account
>> >>bean?
>> >>> >
>> >>> >-- Rob
>> >>> >
>> >>> >Matt Clark wrote:
>> >>> >
>> >>> >> Correction to step 5 in the email. BalanceService returns the
>> >balance
>> >>> >of AccountA,
>> >>> >> not the AccountBean itself...
>> >>> >>
>> >>> >> "Matt Clark" <[email protected]> wrote:
>> >>> >> >
>> >>> >> >We're having a problem in our app which I've been able to duplicate
>> >>> >using
>> >>> >> >a simple
>> >>> >> >bank account example. In this example we're using BMP, Container
>> >>> >managed
>> >>> >> >tx's,
>> >>> >> >and all methods are marked as required. All session beans are
>> >stateless.
>> >>> >> >
>> >>> >> >State prior to client call: Account A has a balance of $100.
>> >>> >> >
>> >>> >> >(1) Client makes a call to BankTellerService to deposit $50
>into
>> >>Account
>> >>> >> >A:
>> >>> >> > long depositAndGetBalance( accountId, amountToDeposit
>).
>> >>> >> >
>> >>> >> >All of the following are in the transaction started by the
>call
>> >>in
>> >>> >(1).
>> >>> >> >
>> >>> >> >(2) BankTellerService calls:
>> >>> >> > void BankTransactionService.deposit( amountToDeposit )
>> >>> >> >
>> >>> >> >3) BankTransactionService looks up AccountBean and increases
>it's
>> >>> >balance
>> >>> >> >by amountToDeposit
>> >>> >> >
>> >>> >> >4) BankTellerSevice calls BalanceService to get the balance
>of
>> >>Account
>> >>> >> >A:
>> >>> >> > long BalanceService.getBalance( accountId )
>> >>> >> >
>> >>> >> >5) BalanceService looks up the AccountBean for account A and
>returns
>> >>> >> >it
>> >>> >> >
>> >>> >> >6) BankTellerService returns the balance to the client
>> >>> >> >
>> >>> >> >The balance returned is $100, which is identical to the initial
>> >>state
>> >>> >> >and does
>> >>> >> >not reflect the deposit of $50.
>> >>> >> >
>> >>> >> >It appears that two seperate instances of Account A are being
>> >loaded,
>> >>> >> >with the
>> >>> >> >first instance receiving the deposit, and then the second instance
>> >>> >being
>> >>> >> >loaded.
>> >>> >> > ejbStore is called sequentially, which means the the first
>instance
>> >>> >> >stores the
>> >>> >> >correct balance of $150, and then is overwritten by the second
>> >>instance
>> >>> >> >with a
>> >>> >> >balance of $100.
>> >>> >> >
>> >>> >> >When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
>> >>> >> >our problems are solved.
>> >>> >> >
>> >>> >> >Current answers from BEA support have said that this is by
>design
>> >>> >and
>> >>> >> >the default
>> >>> >> >setting of delay=false causes this problem but is default for
>> >performance
>> >>> >> >reasons.
>> >>> >> > I just can't accept that because that would seem to violate
>sectino
>> >>> >> >17.7 of the
>> >>> >> >spec, which states that the container is responsible for detecting
>> >>> >this
>> >>> >> >diamond
>> >>> >> >and resolving the problem.
>> >>> >> >
>> >>> >> >Any ideas?
>> >>> >> >
>> >>> >> >Thanks,
>> >>> >> >Matt
>> >>> >
>> >>
>> >>--
>> >>
>> >>----------------------------------------------------------------------
>> >>
>> >>AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
>> >>
>> >>by Michael Girdley, Rob Woollen, and Sandra Emerson
>> >>
>> >>http://learnWebLogic.com
>> >>
>> >>
>> >>
>> >>
>> >><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
>> >><html>
>> >>Can you show me the equals and hashCode implementations for your
>pk
>> >class?
>> >><p>-- Rob
>> >><p>Matt Clark wrote:
>> >><blockquote TYPE=CITE>Rob,
>> >><p>My BasePK implements Serializable, and contains one public member
>> >>variable
>> >>of
>> >><br>type OID, which is a guid (or close to it anyway :) ) byte string.
>> >><p>When I put in debugs to print out the balance and the System.identity(hashcode)
>> >><br>inside the callbacks, here is the sequence I see: (I've left
>out
>> >>the
>> >>primary key
>> >><br>because it is somewhat long, but I've verified that it is the
>same
>> >>for all calls
>> >><br>represented here )
>> >><p>//Client creates account
>> >><br>ejbCreate: Balance 100 Hashcode 3452225
>> >><br>getAccountVO: Balance 100 Hashcode 3452225
>> >><br>ejbStore: Balance 100 Hashcode 3452225
>> >><p>//Client calls depositAndGetNewBalance on remote interface
>> >><br> //Container starts transaction
>> >><br> // Container calls depositAndGetNewBalance on
>> >>bean
>> >><br> //enter BankTransactionService.deposit
>> >><br> findByPrimaryKey: Hashcode:
>> >>721349
>> >><br> ejbLoad: Balance 100 Hashcode
>> >>721349
>> >><br> getAccountVO: Balance
>> >>100
>> >>Hashcode 721349
>> >><br> setAccountVO: Balance
>> >>150
>> >>Hashcode 721349
>> >><br> //exit BankTransactionService.deposit
>> >><p> //enter BalanceService.getBalance
>> >><br> findByPrimaryKey: Hashcode
>> >>2748333
>> >><br> ejbLoad: Balance
>> >>100
>> >>Hashcode 2748333
>> >><br> //exit BankTellerService.getBalance
>> >><br> //exit depositAndGetNewBalance on bean
>> >><p> ejbStore: Balance 150 Hashcode 721349
>> >><br> ejbStore: Balance 100 Hashcode 2748333
>> >><br> //Transaction done
>> >><br>//Client deposit done
>> >><p>//Client removes account
>> >><br>findByPrimaryKey: Hashcode 5932239
>> >><br>ejbLoad: Balance 100 Hashcode 5932239
>> >><br>ejbRemove: Balance 100 Hashcode 5932239
>> >><br>//Client done
>> >><p>Let me know if you need any mroe detail...
>> >><p>Matt
>> >><br>Rob Woollen <[email protected]> wrote:
>> >><br>>
>> >><br>>
>> >><br>>You're going to have to provide some more info for me to know
>what's
>> >><br>>going on.
>> >><br>>
>> >><br>>I'd suggest that you add print messages like this to the callbacks:
>> >><br>>
>> >><br>>System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
>> >><br>>
>> >>" with pk: "+ctx.getPrimaryKey());
>> >><br>>
>> >><br>>Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
>> >>(also
>> >><br>>any other finders that
>> >><br>>you're using), and the business methods.
>> >><br>>
>> >><br>>Show me the output, and I'll have a look.
>> >><br>>
>> >><br>>Also, what class are you using for the primary key of the Account
>> >>bean?
>> >><br>>
>> >><br>>-- Rob
>> >><br>>
>> >><br>>Matt Clark wrote:
>> >><br>>
>> >><br>>> Correction to step 5 in the email. BalanceService returns
>> >>the balance
>> >><br>>of AccountA,
>> >><br>>> not the AccountBean itself...
>> >><br>>>
>> >><br>>> "Matt Clark" <[email protected]> wrote:
>> >><br>>> >
>> >><br>>> >We're having a problem in our app which I've been able to
>duplicate
>> >><br>>using
>> >><br>>> >a simple
>> >><br>>> >bank account example. In this example we're using BMP,
>> >>Container
>> >><br>>managed
>> >><br>>> >tx's,
>> >><br>>> >and all methods are marked as required. All session beans
>are
>> >>stateless.
>> >><br>>> >
>> >><br>>> >State prior to client call: Account A has a balance of $100.
>> >><br>>> >
>> >><br>>> >(1) Client makes a call to BankTellerService to deposit $50
>> >into
>> >>Account
>> >><br>>> >A:
>> >><br>>> > long depositAndGetBalance( accountId,
>> >>amountToDeposit ).
>> >><br>>> >
>> >><br>>> >All of the following are in the transaction started by the
>call
>> >>in
>> >><br>>(1).
>> >><br>>> >
>> >><br>>> >(2) BankTellerService calls:
>> >><br>>> > void BankTransactionService.deposit(
>> >>amountToDeposit
>> >>)
>> >><br>>> >
>> >><br>>> >3) BankTransactionService looks up AccountBean and increases
>> >>it's
>> >><br>>balance
>> >><br>>> >by amountToDeposit
>> >><br>>> >
>> >><br>>> >4) BankTellerSevice calls BalanceService to get the balance
>> >of
>> >>Account
>> >><br>>> >A:
>> >><br>>> > long BalanceService.getBalance( accountId
>> >>)
>> >><br>>> >
>> >><br>>> >5) BalanceService looks up the AccountBean for account A
>and
>> >>returns
>> >><br>>> >it
>> >><br>>> >
>> >><br>>> >6) BankTellerService returns the balance to the client
>> >><br>>> >
>> >><br>>> >The balance returned is $100, which is identical to the initial
>> >>state
>> >><br>>> >and does
>> >><br>>> >not reflect the deposit of $50.
>> >><br>>> >
>> >><br>>> >It appears that two seperate instances of Account A are being
>> >>loaded,
>> >><br>>> >with the
>> >><br>>> >first instance receiving the deposit, and then the second
>instance
>> >><br>>being
>> >><br>>> >loaded.
>> >><br>>> > ejbStore is called sequentially, which means the the first
>> >instance
>> >><br>>> >stores the
>> >><br>>> >correct balance of $150, and then is overwritten by the second
>> >>instance
>> >><br>>> >with a
>> >><br>>> >balance of $100.
>> >><br>>> >
>> >><br>>> >When we change the deployment descriptor to say <delay-updates-until-end-of-tx>false</delay...>,
>> >><br>>> >our problems are solved.
>> >><br>>> >
>> >><br>>> >Current answers from BEA support have said that this is by
>design
>> >><br>>and
>> >><br>>> >the default
>> >><br>>> >setting of delay=false causes this problem but is default
>for
>> >>performance
>> >><br>>> >reasons.
>> >><br>>> > I just can't accept that because that would seem to violate
>> >>sectino
>> >><br>>> >17.7 of the
>> >><br>>> >spec, which states that the container is responsible for
>detecting
>> >><br>>this
>> >><br>>> >diamond
>> >><br>>> >and resolving the problem.
>> >><br>>> >
>> >><br>>> >Any ideas?
>> >><br>>> >
>> >><br>>> >Thanks,
>> >><br>>> >Matt
>> >><br>></blockquote>
>> >>
>> >><pre>--
>> >>
>> >>----------------------------------------------------------------------
>> >>
>> >>AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
>> >>
>> >>by Michael Girdley, Rob Woollen, and Sandra Emerson
>> >>
>> >>http://learnWebLogic.com</pre>
>> >> </html>
>> >>
>> >>
>> >
>
>
><!doctype html public "-//w3c//dtd html 4.0 transitional//en">
><html>
>The reason I asked about your primary key class is that your previous
>message
>shows:
><blockquote TYPE=CITE>
><pre>//Client calls depositAndGetNewBalance on remote interface
> //Container starts transaction
> // Container calls depositAndGetNewBalance on bean
> //enter BankTransactionService.deposit
> findByPrimaryKey: Hashcode:
>721349
> ejbLoad: Balance 100 Hashcode
>721349
> getAccountVO: Balance 100
>Hashcode 721349
> setAccountVO: Balance 150
>Hashcode 721349
> //exit BankTransactionService.deposit
>
> //enter BalanceService.getBalance
> findByPrimaryKey: Hashcode
>2748333
> ejbLoad: Balance 100
>Hashcode 2748333</pre>
></blockquote>
>This is where I'm concerned. Assuming that the deposit call and
>the
>getBalance call both call the entity bean with the same pk in the same
>tx, then there should only be one instance used. However,
>here
>we see 2 instances.
><p>My guess is still that your pk hashCode and equals are off.
>(The
>container uses them to determine whether there is already an instance
>for
>this pk in use.)
><p>I would suggest that you add some debug messages to your hashCode
>and
>equals methods. In particular, check that when a.equals(b), a.hashCode()
>== b.hashCode(). Also make sure that you're equals() method is
>not
>returning false unexpectedly.
><p>If you're still having problems, post again, and we'll go from there.
><p>-- Rob
><blockquote TYPE=CITE>
><pre>
> //exit BankTellerService.getBalance
> //exit depositAndGetNewBalance on bean
>
>
> ejbStore: Balance 150 Hashcode 721349
> ejbStore: Balance 100 Hashcode 2748333
> //Transaction done
>//Client deposit done
>
>//Client removes account
>findByPrimaryKey: Hashcode 5932239
>ejbLoad: Balance 100 Hashcode 5932239
>ejbRemove: Balance 100 Hashcode 5932239
>//Client done</pre>
></blockquote>
>
><p>Matt Clark wrote:
><blockquote TYPE=CITE>Rob,
><p>After thinking about why you asked to see the pk methods, I went and
>looked at
><br>our implementation, and noticed that the hashcode method on OID is
>faulty (missing
><br>some parentheses). However, afetr I fixed it we're still getting
>the
>same problem.
><br> If I print out pk.hashCode(), I get all the same hashcode.
>If i print out System.identityHashcode(
><br>pk ), I get different hashcodes, which I understand is because that
>call calls
><br>Object.hashCode even if it has been overridden.
><p>Hope this helps,
><p>Matt
><p>"Matt Clark" <[email protected]> wrote:
><br>>
><br>>Sure.
><br>>
><br>>The BasePK class has a private attribute "id" of type OID, and here
>are
><br>>the hashcode
><br>>and equals methods for BasePK:
><br>>
><br>>public int hashCode()
><br>>{
><br>> int code = 0;
><br>> if(id != null)
><br>> {
><br>> code = id.hashCode();
><br>> }
><br>> return code;
><br>>}
><br>>
><br>>public boolean equals(Object obj)
><br>>{
><br>> if( obj == null || !(obj instanceof BasePK) )
><br>> {
><br>> return false;
><br>> }
><br>> else if( (this.id == ((BasePK)obj).id) ||
><br>>
>(this.id != null && this.id.equals( obj ) ) )
><br>> {
><br>> return true;
><br>> }
><br>> else
><br>> {
><br>> return false;
><br>> }
><br>>}
><br>>
><br>>
><br>>The OID class has a private attribute byteArray of type byte[16].
>It's
><br>>hashcode
><br>>and equals methods are:
><br>>
><br>>public int hashcode() {
><br>> return (int)( (getMostSignificantBytes() >> 32)
>& 0xFFFF +
><br>>
>(getMostSignificantBytes() ) & 0xFFFF
>+
><br>>
>(getLeastSignificantBytes() >> 32 ) & 0xFFFF +
><br>>
>(getLeastSignificantBytes() ) &
>0xFFFF);
><br>>}
><br>>
><br>>public long getMoSignificantBytes() {
><br>> long mb;
><br>> mb=(((long)byteArray[15])&0xFF)<<56
>|
><br>> (((long)byteArray[14])&0xFF)<<48
>|
><br>> (((long)byteArray[13])&0xFF)<<40
>|
><br>> (((long)byteArray[12])&0xFF)<<32
>|
><br>> (((long)byteArray[11])&0xFF)<<24
>|
><br>> (((long)byteArray[10])&0xFF)<<16
>|
><br>> (((long)byteArray[9])&0xFF)<<
>8 |
><br>> (((long)byteArray[8])&0xFF);
><br>> return mb;
><br>>}
><br>>
><br>>public long getLeastSignificantBytes() {
><br>> long lsb;
><br>> lsb=(((long)byteArray[7])&0xFF)<<56
>|
><br>> (((long)byteArray[6])&0xFF)<<48
>|
><br>> (((long)byteArray[5])&0xFF)<<40
>|
><br>> (((long)byteArray[4])&0xFF)<<32
>|
><br>> (((long)byteArray[3])&0xFF)<<24
>|
><br>> (((long)byteArray[2])&0xFF)<<16
>|
><br>> (((long)byteArray[1])&0xFF)<<
>8 |
><br>> (((long)byteArray[0])&0xFF);
><br>> return lsb;
><br>>}
><br>>
><br>>public boolean equals( Object obj ) {
><br>> boolean equality = false;
><br>> if( obj == this )
><br>> {
><br>> equality = true;
><br>> }
><br>> else if( obj != null && obj instanceof
>OID )
><br>> {
><br>> OID other = (OID) obj;
><br>> equality = ( (other.getLeastSignificantBytes()
>==
><br>>
>getLeastSignificantBytes() ) &&
><br>>
>(other.getMostSignificantBytes() ==
><br>>
>getMostSignificantBytes() ) );
><br>> }
><br>> return equality;
><br>>}
><br>>
><br>>
><br>>Rob Woollen <[email protected]> wrote:
><br>>>
><br>>>
><br>>>Can you show me the equals and hashCode implementations for your
>pk
><br>>class?
><br>>>
><br>>>-- Rob
><br>>>
><br>>>Matt Clark wrote:
><br>>>
><br>>>> Rob,
><br>>>>
><br>>>> My BasePK implements Serializable, and contains one public member
><br>>variable
><br>>>of
><br>>>> type OID, which is a guid (or close to it anyway :) ) byte string.
><br>>>>
><br>>>> When I put in debugs to print out the balance and the System.identity(hashcode)
><br>>>> inside the callbacks, here is the sequence I see: (I've left
>out
>the
><br>>>primary key
><br>>>> because it is somewhat long, but I've verified that it is the
>same
><br>>>for all calls
><br>>>> represented here )
><br>>>>
><br>>>> //Client creates account
><br>>>> ejbCreate: Balance 100 Hashcode 3452225
><br>>>> getAccountVO: Balance 100 Hashcode 3452225
><br>>>> ejbStore: Balance 100 Hashcode 3452225
><br>>>>
><br>>>> //Client calls depositAndGetNewBalance on remote interface
><br>>>> //Container starts transaction
><br>>>> // Container calls depositAndGetNewBalance
>on bean
><br>>>> //enter BankTransactionService.deposit
><br>>>> findByPrimaryKey:
>Hashcode: 721349
><br>>>> ejbLoad: Balance
>100 Hashcode 721349
><br>>>> getAccountVO:
>Balance
>100 Hashcode 721349
><br>>>> setAccountVO:
>Balance
>150 Hashcode 721349
><br>>>> //exit BankTransactionService.deposit
><br>>>>
><br>>>> //enter BalanceService.getBalance
><br>>>> findByPrimaryKey:
>Hashcode 2748333
><br>>>> ejbLoad:
>Balance 100 Hashcode 2748333
><br>>>> //exit BankTellerService.getBalance
><br>>>> //exit depositAndGetNewBalance on bean
><br>>>>
><br>>>> ejbStore: Balance 150 Hashcode 721349
><br>>>> ejbStore: Balance 100 Hashcode 2748333
><br>>>> //Transaction done
><br>>>> //Client deposit done
><br>>>>
><br>>>> //Client removes account
><br>>>> findByPrimaryKey: Hashcode 5932239
><br>>>> ejbLoad: Balance 100 Hashcode 5932239
><br>>>> ejbRemove: Balance 100 Hashcode 5932239
><br>>>> //Client done
><br>>>>
><br>>>> Let me know if you need any mroe detail...
><br>>>>
><br>>>> Matt
><br>>>> Rob Woollen <[email protected]> wrote:
><br>>>> >
><br>>>> >
><br>>>> >You're going to have to provide some more info for me to know
>what's
><br>>>> >going on.
><br>>>> >
><br>>>> >I'd suggest that you add print messages like this to the callbacks:
><br>>>> >
><br>>>> >System.out.println("ejbLoad called in id: "+System.identityHashCode(this)+
><br>>>> >
>" with pk: "+ctx.getPrimaryKey());
><br>>>> >
><br>>>> >Put a message like this in ejbLoad, ejbStore, ejbFindByPrimaryKey
><br>>>(also
><br>>>> >any other finders that
><br>>>> >you're using), and the business methods.
><br>>>> >
><br>>>> >Show me the output, and I'll have a look.
><br>>>> >
><br>>>> >Also, what class are you using for the primary key of the Account
><br>>>bean?
><br>>>> >
><br>>>> >-- Rob
><br>>>> >
><br>>>> >Matt Clark wrote:
><br>>>> >
><br>>>> >> Correction to step 5 in the email. BalanceService returns
>the
><br>>balance
><br>>>> >of AccountA,
><br>>>> >> not the AccountBean itself...
><br>>>> >>
><br>>>> >> "Matt Clark" <[email protected]> wrote:
><br>>>> >> >
><br>>>> >> >We're having a problem in our app which I've been able to
>duplicate
><br>>>> >using
><br>>>> >> >a simple
><br>>>> >> >bank account example. In this example we're using BMP,
>Container
><br>>>> >managed
><br>>>> >> >tx's,
><br>>>> >> >and all methods are marked as required. All session beans
>are
><br>>stateless.
><br>>>> >> >
><br>>>> >> >State prior to client call: Account A has a balance of $100.
><br>>>> >> >
><br>>>> >> >(1) Client makes a call to BankTellerService to deposit $50
>into
><br>>>Account
><br>>>> >> >A:
><br>>>> >> > long depositAndGetBalance( accountId,
>amountToDeposit ).
><br>>>> >> >
><br>>>> >> >All of the following are in the transaction started by the
>call
><br>>>in
><br>>>> >(1).
><br>>>> >> >
><br>>>> >> >(2) BankTellerService calls:
><br>>>> >> > void BankTransactionService.deposit(
>amountToDeposit )
><br>>>> >> >
><br>>>> >> >3) BankTransactionService looks up AccountBean and increases
>it's
><br>>>> >balance
><br>>>> >> >by amountToDeposit
><br>>>> >> >
><br>>>> >> >4) BankTellerSevice calls BalanceService to get the balance
>of
><br>>>Account
><br>>>> >> >A:
><br>>>> >> > long BalanceService.getBalance(
>accountId
>)
><br>>>> >> >
><br>>>> >> >5) BalanceService looks up the AccountBean for account A
>and
>returns
><br>>>> >> >it
><br>>>> >> >
><br>>>> >> >6) BankTellerService returns the balance to the client
><br>>>> >> >
><br>>>> >> >The balance returned is $100, which is identical to the initial
><br>>>state
><br>>>> >> >and does
><br>> -
Dreamweaver CS6- I am trying to use jquery and jquery cycle to have 5 images slide (as a fade) in a banner. I thought I got the code right but it stacked the images. I suspect I have the incorrect code for the position or I haven't properly added cycle.
my head code:
<title>slider</title>
<script type="text/javascript" src="JS/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="JS/jquery.cycle2.min.js"></script>
<script type="text/javascript">
$('#slider').cycle({
</script>
<style type="text/CSS">
#slider {margin:auto;}
</style>
My div code:
<div id="slider">
<p>
<img src="Leather web page/DSC_0531_4925.JPG"/>
<img src="Leather web page/DSC_0035_edited-1.JPG"/>
<img src="Leather web page/DSC_1593_edited-1.jpg"/>
<img src="Leather web page/DSC_1595_edited-1.jpg"/>
<img src="Leather web page/DSC_1821.jpg"/>
</div>
Any help would be greatly appreciated.1. You can use a constructor to change the defaults. The default values can be seen in jquery.cycle2.js starting at line 659 as per the following. As you can see at the bottom, the code automatically runs the slideshow(s)
// @see: http://jquery.malsup.com/cycle2/api
$.fn.cycle.defaults = {
allowWrap: true,
autoSelector: '.cycle-slideshow[data-cycle-auto-init!=false]',
delay: 0,
easing: null,
fx: 'fade',
hideNonActive: true,
loop: 0,
manualFx: undefined,
manualSpeed: undefined,
manualTrump: true,
maxZ: 100,
pauseOnHover: false,
reverse: false,
slideActiveClass: 'cycle-slide-active',
slideClass: 'cycle-slide',
slideCss: { position: 'absolute', top: 0, left: 0 },
slides: '> img',
speed: 500,
startingSlide: 0,
sync: true,
timeout: 4000,
updateView: 0
// automatically find and run slideshows
$(document).ready(function() {
$( $.fn.cycle.defaults.autoSelector ).cycle();
2. To center the slideshow, merely center the container as in
div.cycle-slideshow {
width: 1000px;
margin: auto; -
Errors deploying applications with WLE5.1
Hello, i'm deploying many applications on Wle5.1; i mail two applications which give me problems.
The first application is CodiciSoggetto
i've problem with the boot of the application ( entity bean )because there is a cmp field (id) in the ejb-jar.xml which owns to Primary key class , but not to Bean class. This application works fine in WebLogicServer5.1; have i to change the source code? How can i tell it that this field owns to primary key class? perhaps with the tag >primary-key-field>?
This is the log:
120101.dcsv01!BBL.11193: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120101.dcsv01!BBL.11193: LIBTUX_CAT:262: INFO: Standard main starting
120101.dcsv01!TMSYSEVT.11194: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120101.dcsv01!TMSYSEVT.11194: LIBTUX_CAT:262: INFO: Standard main starting
120102.dcsv01!TMFFNAME.11195: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120102.dcsv01!TMFFNAME.11195: LIBTUX_CAT:262: INFO: Standard main starting
120102.dcsv01!TMFFNAME.11196: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120102.dcsv01!TMFFNAME.11196: LIBTUX_CAT:262: INFO: Standard main starting
120103.dcsv01!TMFFNAME.11197: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120103.dcsv01!TMFFNAME.11197: LIBTUX_CAT:262: INFO: Standard main starting
120103.dcsv01!JavaServer.11198: 10-11-2000: TUXEDO Version 6.5forWLE5.1
120103.dcsv01!JavaServer.11198: LIBTUX_CAT:262: INFO: Standard main starting
120103.dcsv01!JavaServer.11198: IJINFRA_CAT:2: INFO: Starting JVM
120103.dcsv01!JavaServer.11198: IJINFRA_CAT:318: INFO: Static jar management in effect
120105.dcsv01!JavaServer.11198: main: IJENGINE_CAT:11: INFO: Threading level is Single-Threaded (level 0)
120106.dcsv01!JavaServer.11198: main: JTA_CAT:20: INFO: ConnectionPoolDataSource created for JDBC driver: oracle.jdbc.driver.OracleDriver
120106.dcsv01!JavaServer.11198: main: JDBC_CAT:4: INFO: Driver: oracle.jdbc.driver.OracleDriver loaded
120107.dcsv01!JavaServer.11198: main: JDBC_CAT:5: INFO: New JDBC connection created by driver: oracle.jdbc.driver.OracleDriver
120107.dcsv01!JavaServer.11198: main: JTA_CAT:19: INFO: 1 JDBC connection(s) created for JDBC connection pool: clientPool
120108.dcsv01!JavaServer.11198: main: INFO: Considering EJB Cache capacity (MAXEJBCACHE) from TMIB. Ignoring Java property com.beasys.ejb.cache. Capacity=10
120108.dcsv01!JavaServer.11198: main: INFO: Ignoring EJB Cache flush time (EJBCACHE_FLUSH) from TMIB. Ignoring Java property com.beasys.ejb.cache.flushTime. Cach FlushTime=0
120111.dcsv01!JavaServer.11198: main: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB :
java.lang.NoSuchFieldException: id
120111.dcsv01!JavaServer.11198: main: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB : The EJB Container received weblogic.ejb.common.DeploymentException: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB :
java.lang.NoSuchFieldException: id while setting container managed persistence.
120111.dcsv01!JavaServer.11198: main: EJB_CAT:29: ERROR: While deploying jar oggetto/ejb_codicisoggetto.jar : Problem advertising beans to ISM: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB : The EJB Container received weblogic.ejb.common.DeploymentException: EJB_CAT:28: ERROR: While deploying bean it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB :
java.lang.NoSuchFieldException: id while setting container managed persistence.
This is the ejb-jar.xml;
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB</ejb-name>
<home>it.sella.anagrafe.codicisoggetto.CodiciSoggettoHome</home>
<remote>it.sella.anagrafe.codicisoggetto.CodiciSoggetto</remote>
<ejb-class>it.sella.anagrafe.codicisoggetto.CodiciSoggettoBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>it.sella.ejb.DefaultPK</prim-key-class>
<reentrant>True</reentrant>
<primkey-field>id</primkey-field>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>soggettoId</field-name>
</cmp-field>
<cmp-field>
<field-name>compatibleInstanceId</field-name>
</cmp-field>
<cmp-field>
<field-name>compatibleTypeId</field-name>
</cmp-field>
<cmp-field>
<field-name>value</field-name>
</cmp-field>
<cmp-field>
<field-name>rightPk</field-name>
</cmp-field>
<env-entry>
<env-entry-name>counterHomeName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>it.sella.counter.CounterHome</env-entry-value>
</env-entry>
<resource-ref>
<res-ref-name>jdbc/clientPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
This is the weblogic-ejb-extensions.xml:
<!DOCTYPE weblogic-ejb-extensions SYSTEM "weblogic-ejb-extensions.dtd" >
<weblogic-ejb-extensions>
<weblogic-enterprise-bean>
<ejb-name>it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB</ejb-name>
<weblogic-deployment-params>
<max-beans-in-free-pool>20</max-beans-in-free-pool>
<max-beans-in-cache>1000</max-beans-in-cache>
<!--<idle-timeout-seconds>5</idle-timeout-seconds>-->
<!-- JNDI name that is associated with this EJB;used for lookup -->
<jndi-name>it.sella.anagrafe.codicisoggetto.CodiciSoggettoHome</jndi-name>
<!-- This is CMP EJB. Specify persistence information -->
<persistence-store-descriptor>
<is-modified-method-name>isModified</is-modified-method-name>
<!--<delay-updates-until-end-of-tx>false</delay-updates-until-end-of-tx>-->
<!--<db-is-shared>false</db-is-shared>-->
<persistence-store-jdbc>
<!-- Pool name is looked up by the EJB source -->
<pool-name>jdbc/clientPool</pool-name>
<!-- *** DATABASE INFORMATION SPECIFIC TO INSTALLATION SITE *** -->
<user>ssil</user>
<!-- Default password URL is for Oracle 8i-->
<password>ssil</password>
<!-- Default driver URL is for Oracle 8i,
and default instance Beq-Local is used
-->
<driver-url>jdbc:oracle:thin:@171.97.1.5:1521:th2o</driver-url>
<table-name>AN_TR_CODICISOGGETTO</table-name>
<!-- Default user URL is for Oracle 8i-->
<!-- CMP Fields and database table column mapping-->
<attribute-map>
<attribute-map-entry>
<bean-field-name>id</bean-field-name>
<table-column-name>CS_CODICIFISCALI_ID</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>soggettoId</bean-field-name>
<table-column-name>cs_soggetto_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>compatibleInstanceId</bean-field-name>
<table-column-name>cs_compatible_instance_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>compatibleTypeId</bean-field-name>
<table-column-name>cs_compatible_type_id</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>value</bean-field-name>
<table-column-name>cs_value</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>rightPk</bean-field-name>
<table-column-name>CS_RIGHT_PK</table-column-name>
</attribute-map-entry>
</attribute-map>
<!-- Finder Specifications -->
<finder-descriptor>
<description>
Find method to get accounts with balance over the parameter.
</description>
<method>
<ejb-name>
it.sella.anagrafe.codicisoggetto.CodiciSoggettoEJB
</ejb-name>
<method-name>
findBySoggettoId(Long long1)
</method-name>
</method>
<query-grammar>
(= soggettoId $long1)
</query-grammar>
</finder-descriptor>
</persistence-store-jdbc>
</persistence-store-descriptor>
</weblogic-deployment-params>
</weblogic-enterprise-bean>
</weblogic-ejb-extensions>
This is the bean class:
package it.sella.anagrafe.codicisoggetto;
import it.sella.ejb.EntityBeanAdapter;
import java.util.ResourceBundle;
public class CodiciSoggettoBean extends EntityBeanAdapter
public Long soggettoId;
public Long compatibleInstanceId;
public Long compatibleTypeId;
public Long rightPk;
private Long codiciFisicaliId;
public String value;
private static ResourceBundle res;
private static final String JNDI_FACTORY;
private static final String WL_HOST_URL;
public CodiciSoggettoBean()
protected Long getCounterInitVal()
return new Long(1000L);
public Long getInstanceId()
return compatibleInstanceId;
public Long getRightPk()
return rightPk;
public Long getSoggettoId()
return soggettoId;
public Long getTypeId()
return compatibleTypeId;
public String getValue()
return value;
public void setInstanceId(Long long1)
compatibleInstanceId = long1;
setModified(true);
public void setRightPk(Long long1)
rightPk = long1;
setModified(true);
public void setSoggettoId(Long long1)
soggettoId = long1;
setModified(true);
public void setTypeId(Long long1)
compatibleTypeId = long1;
setModified(true);
public void setValue(String s)
value = s;
setModified(true);
static
res = ResourceBundle.getBundle("EJBFrameWorkLogRes");
JNDI_FACTORY = res.getString("WLInitialContexFactoryNameForJNDI");
WL_HOST_URL = res.getString("WLServerHostURL");
This is the primary key class:
package it.sella.ejb;
// Referenced classes of package it.sella.ejb:
// IPrimaryKey
public class DefaultPK
implements IPrimaryKey
public Long id;
public DefaultPK()
public DefaultPK(Long id)
setId(id);
public Long getId()
return id;
protected void setId(Long id)
this.id = id;
public String toString()
return "Id=" + getId();
public int hashCode()
return getId() == null ? 0 : getId().hashCode();
public boolean equals(Object obj)
if(obj != null && (obj instanceof DefaultPK))
return getId() != null && getId().equals(((DefaultPK)obj).getId());
else
return false;
This is the log to the second application ( not to the boot but with java weblogic.ejbc ... ejb-jar.xml..)
/wle2/wle/components/Dispatcher/it/sella/dispatch/TopicListenerPSJDBC.java:605: Duplicate method declaration:
java.lang.Object findByPrimaryKey(it.sella.dispatch.TopicListenerPK)
public java.lang.Object findByPrimaryKey(it.sella.dispatch.TopicListenerPK topiclistenerpk)
^
1 error
Exec failed .. exiting
This is the ejb-jar.xml:
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<ejb-jar>
<small-icon>it/sella/dispatch/postman-small.gif</small-icon>
<large-icon>it/sella/dispatch/postman.gif</large-icon>
<enterprise-beans>
<session>
<display-name>Topic Manager Bean</display-name>
<small-icon></small-icon>
<large-icon></large-icon>
<ejb-name>it.sella.dispatch.TopicManager</ejb-name>
<home>it.sella.dispatch.TopicManagerHome</home>
<remote>it.sella.dispatch.TopicManager</remote>
<ejb-class>it.sella.dispatch.TopicManagerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<env-entry>
<description>Select statement for JDBC based topic finder method</description>
<env-entry-name>SelectStatement</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>select distinct topicname from tbltopics</env-entry-value>
</env-entry>
<env-entry>
<description>The name of the field to select from</description>
<env-entry-name>TopicFieldName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>TOPICNAME</env-entry-value>
</env-entry>
<env-entry>
<description>The password for oracle DB Connection</description>
<env-entry-name>Password</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ssil</env-entry-value>
</env-entry>
<env-entry>
<description>The Driver class name for the Oracle DB</description>
<env-entry-name>JDBCDriver</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>oracle.jdbc.driver.OracleDriver</env-entry-value>
</env-entry>
<env-entry>
<description>The driver URL for the database</description>
<env-entry-name>JDBCURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>jdbc:oracle:thin:@171.97.1.5:1521:th2o</env-entry-value>
</env-entry>
<env-entry>
<description>The user name used to connect to the Oracle DB</description>
<env-entry-name>UserName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ssil</env-entry-value>
</env-entry>
</session>
<session>
<display-name>Dispatcher Bean</display-name>
<small-icon></small-icon>
<large-icon></large-icon>
<ejb-name>it.sella.dispatch.Dispatcher</ejb-name>
<home>it.sella.dispatch.DispatcherHome</home>
<remote>it.sella.dispatch.Dispatcher</remote>
<ejb-class>it.sella.dispatch.DispatcherBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
<entity>
<display-name>Topic Listener Bean</display-name>
<ejb-name>it.sella.dispatch.TopicListener</ejb-name>
<home>it.sella.dispatch.TopicListenerHome</home>
<remote>it.sella.dispatch.TopicListener</remote>
<ejb-class>it.sella.dispatch.TopicListenerBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>it.sella.dispatch.TopicListenerPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>strtopic</field-name>
</cmp-field>
<cmp-field>
<field-name>strjndi</field-name>
</cmp-field>
</entity>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<role-name>system</role-name>
</security-role>
<security-role>
<role-name>guest</role-name>
</security-role>
<method-permission>
<description></description>
<role-name>system</role-name>
<role-name>guest</role-name>
<!--<method>
<ejb-name>it.sella.dispatch.TopicListener</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<method>
<ejb-name>it.sella.dispatch.Dispatcher</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<method>
<ejb-name>it.sella.dispatch.TopicManager</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>-->
</method-permission>
<container-transaction>
<method>
<ejb-name>it.sella.dispatch.TopicListener</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<method>
<ejb-name>it.sella.dispatch.Dispatcher</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<method>
<ejb-name>it.sella.dispatch.TopicManager</ejb-name>
<method-intf>Remote</method-intf>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
This is the weblogic-ejb-extensions.xml:
<!DOCTYPE weblogic-ejb-extensions SYSTEM "weblogic-ejb-extensions.dtd" >
<weblogic-ejb-extensions>
<weblogic-enterprise-bean>
<ejb-name>it.sella.dispatch.TopicManager</ejb-name>
<weblogic-deployment-params>
<jndi-name>it.sella.dispatch.TopicManager</jndi-name>
</weblogic-deployment-params>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>it.sella.dispatch.Dispatcher</ejb-name>
<weblogic-deployment-params>
<jndi-name>it.sella.dispatch.Dispatcher</jndi-name>
</weblogic-deployment-params>
</weblogic-enterprise-bean>
<weblogic-enterprise-bean>
<ejb-name>it.sella.dispatch.TopicListener</ejb-name>
<weblogic-deployment-params>
<jndi-name>it.sella.dispatch.TopicListener</jndi-name>
<persistence-store-descriptor>
<!--<is-modified-method-name>isModified</is-modified-method-name> -->
<persistence-store-jdbc>
<pool-name>jdbc/oraclePool</pool-name>
<user>ssil</user>
<password>ssil</password>
<driver-url>jdbc:oracle:thin:@171.97.1.5:1521:th2o</driver-url>
<table-name>TBLTOPICS</table-name>
<attribute-map>
<attribute-map-entry>
<bean-field-name>strtopic</bean-field-name>
<table-column-name>topicname</table-column-name>
</attribute-map-entry>
<attribute-map-entry>
<bean-field-name>strjndi</bean-field-name>
<table-column-name>jndiname</table-column-name>
</attribute-map-entry>
</attribute-map>
<finder-descriptor>
<method>
<ejb-name>
it.sella.dispatch.TopicListener
</ejb-name>
<method-name>
findByTopic(String s)
</method-name>
</method>
<query-grammar> (= strtopic $s)</query-grammar>
</finder-descriptor>
<finder-descriptor>
<method>
<ejb-name>
it.sella.dispatch.TopicListener
</ejb-name>
<method-name>findByPrimaryKey(it.sella.dispatch.TopicListenerPK topiclistenerpk)</method-name>
</method>
<query-grammar> (& (= strtopic topiclistenerpk.strtopic) (= strjndi topiclistenerpk.strjndi))</query-grammar>
</persistence-store-jdbc>
</persistence-store-descriptor>
</weblogic-deployment-params>
</weblogic-enterprise-bean>
</weblogic-ejb-extensions>
This is the primary key class:
// FrontEnd Plus for JAD
// DeCompiled : TopicListenerPK.class
package it.sella.dispatch;
import java.io.Serializable;
import java.util.Random;
public class TopicListenerPK
implements Serializable
public String strtopic;
public String strjndi;
public int hashCode()
return strtopic.hashCode() ^ strjndi.hashCode();
public boolean equals(Object obj)
return (obj instanceof TopicListenerPK) && (strtopic == null && ((TopicListenerPK)obj).strtopic == null || strtopic.equals(((TopicListenerPK)obj).strtopic)) && (strjndi == null && ((TopicListenerPK)obj).strjndi == null || strjndi.equals(((TopicListenerPK)obj).strjndi));
public TopicListenerPK()
strtopic = (new Random()).toString();
strjndi = (new Random()).toString();
public TopicListenerPK(String s, String s1)
strtopic = s;
strjndi = s1;
This is the home interface:
package it.sella.dispatch;
import java.rmi.RemoteException;
import java.util.Enumeration;
import javax.ejb.*;
// Referenced classes of package it.sella.dispatch:
// TopicListener, TopicListenerPK
public interface TopicListenerHome
extends EJBHome
public abstract TopicListener create(String s, String s1)
throws RemoteException, CreateException;
public abstract TopicListener findByPrimaryKey(TopicListenerPK topiclistenerpk)
throws RemoteException, FinderException;
public abstract Enumeration findByTopic(String s)
throws RemoteException, FinderException;
I hope somebody could help me.
ThanksI've never had large enough RDS environment to use SCCM for app push, but from my experience in managing 2012/R2 RDS and local installs, I never bother with switching to install mode anymore and it works fine. Now if you're skeptical, you can
easily build this into a script that runs as a pre-req to your .MSI as part of the software package in SCCM so it's not a big deal.
As for installing apps while users are logged in, shouldn't be a problem if you're installing a new app., if however you're updating an existing application or uninstalling it, then it may be best to drain that RDS host first of all user sessions then do
the work just to be safe. this also helps avoid reboots. -
I've got a sign in window that opens off the screen. The field values default properly so I just use ENTER to submit but I'd prefer to have it visible. How can I change the default window position or simply change its location once it's displayed?
I guess I'm looking for the equivalent of a Windows move command that has keyboard shortcuts.
TIA,
DavidNot sure if this will help you or not because I'm not sure what login box you're talking about. But here is a quick applescript that would change the location of itunes. You might be able to replace it with the name of the login box and have it moved to a new location.
I'm not sure where mac saves that information but it would almost certainly be in your user directory somewhere in a text file ready to be reset. If I find more I'll post again, but doing a quick test with this script might get your going quicker than finding the files..
Here is the script and you can copy and paste into an apple script file and compile and run it.
tell application "iTunes"
set minimized of front browser window to false
delay 1
set bounds of front browser window to {6, 65, 1102, 740}
end tell
glenn
Maybe you are looking for
-
Can't Install Final Cut Studio 2.0
What the **** is going on? I just got a new iMac and the Universal software I own can't install? Is there no workaround - no alternate installers available? You have got to be kidding me. Any help would be appreciated. I love how Steve Jobs was known
-
How to call a BW Query from an ABAP program?
How to call a BW Query from an ABAP program?
-
I am working on a flash intro for a customer, and i've noticed a spelling error that continues through approx. 200 frames. Is there a way I can edit all of the frames at the same time and just correct the spelling error once? I tried selecting all of
-
My daughter has disabled her iphone from lock screen. how do i fix it?
my daughter has disabled her iPhone from lock screen. how do I fix this?
-
UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I
제품 : SQL*PLUS 작성날짜 : 2001-08-01 UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I ======================================================== PURPOSE Oracle 9i 에서 소개되는 새로운 datetime data type 에 대해 소개한다. Explanation Example 1. Datetime Datatypes 1)