UnitOfWork/Cache/ClientSession Object Update Problem
I have a test case that does a create, read, update, read. This is done through methods on a stateless session bean with all methods requiring a transaction.
I am using Toplink 9.0.3,JBoss 3.0.7 and JTS. Bascally I have a very simple object.
1. I create the object then call my bean, my bean
calls TopLink and gets a ClientSession from a
ServerSession and then gets a UnitOfWork from the
clientSession. I then register the object as new,
and commit the object, which get's written to the
database. My bean method returns the pk.
BeanInterface.createObject(Object obj) {
UnitOfWork uow = Singleton.getServerSession().getClientSession().getUnitOfWork();
uow.registerNewObject();
uow.commit();
2. I then read the object via my bean, by calling
get ClientSession from ServerSession and calling
readObject on it.
BeanInterface.readObject(Object obj) {
ClientSession session = Singleton.getServerSession().getClientSession();
return Utility.cloneObject(session.readObject(obj)); //Insures I am getting my own copy not a ref.
So far so good.
3. I then modify the object in my client and call
an update method on my bean. This methods does a
SessionServer.getClientSession().getUnitOfWork()
I then register my object as existing, deep
merge it and then commit the unit of work.
BeanInterface.updateObject(Object obj) {
UnitOfWork uow = Singleton.getServerSession().getClientSession().getUnitOfWork();
Object clone = uow.registerExistingObject(obj);
uow.deepMergeClone(obj);
uow.commit();
I check the database and the changes are there.
4. Now the kicker. I read the object again like in
step 2 and I get the original object not changes.
So what is in the cache is the orignal object,
wht is in the database is the modified object.
BeanInterface.readObject(Object obj) {
ClientSession session = Singleton.getServerSession().getClientSession();
return Utility.cloneObject(session.readObject(obj)); //Insures I am getting my own copy not a ref.
At this point I am stumped because the changes are in
the database, but not in the cache and I get no
exceptions.
Any thoughts?
Thanks
Mike H. SR.
Donald,
There are three methods you can use. registerExistingObject(), registerNewObject(), registerObject(). If you know that the object is new then using registerNewObject() is better because it does not do the existence check. If you know that that object exists then using registerExistingObject() saves you the overhead of having TopLink determine whether the object exists or not. registerObject() is really only useful if you do not know whether the object is new or exists. So registNew, registExisting are optimizations. In my case we are using registerNewObject() when a consumer says create the object, and registerExistingObject() when they are doing an update. There is also a store, which uses the registObject(), in this case the consumer does not know whether the object is new or existing.
I have been tracking the register method in my debugger and the problem may be in this method. Basically the registerObject or registerExistingObject is suppose to load the original object from the datbase if it is not in the cache. If it is in the cache is should clone it giving back the reference to the clone. In the end there will be two copies of the object the Clone on the cloned object list and the original on the original object list. The deepMergeClone should update the clone with the latest changes and then commit should be deltaing the clone and the original to determine what goes to the db. So far the is working ok because the data does filter to the database. If I turn caching off there are no problems.
Additional information. I did some testing and watching in the debugger, I know this, if I do a serverSession.getClientSession.readObject() or any select or read on the clientSession I get back the same reference every time, but serverSession.getClientSession().acquireUnitOfWork().readObject() returns a different object reference than the clientSession. This may be by design, also I believe the problem is the descriptor, but I cannot figure out what it is about the descriptor, because this only happens on a few descriptors.
By the way I tried the registerObject prior to posting to no avail and had it worked that would have meant there was a problem with registerExistingObject, because this is an existing object.
Thanks for the input.
Similar Messages
-
Hi All,
We are implementing BW. The Vendor and Document date info objects are not mapped directly to SAP R/3. Hence the data is not updating directly fromR/3 for these info objects. So I have written a small transfer routine to update the info object. But it is not getting updated with this routine. I am not sure where the problem is. Any ideas why?
The following is the code of transfer routine. There are two infosources: communicaoin structure and Transfer structure. I wrote the routine in transfer structure. This routine is written for the info object Vendor.
PROGRAM CONVERSION_ROUTINE.
Type pools used by conversion program
TYPE-POOLS: RS, RSARC, RSARR, SBIWA, RSSM.
Declaration of transfer structure (selected fields only)
TYPES: BEGIN OF TRANSFER_STRUCTURE ,
InfoObject SL_ACTIV: CHAR - 000004
ACTIV(000004) TYPE C,
InfoObject SL_AWORG: CHAR - 000010
AWORG(000010) TYPE C,
InfoObject SL_AWTYP: CHAR - 000005
AWTYP(000005) TYPE C,
InfoObject 0ACDOC_NO_F: CHAR - 000010
BELNR(000010) TYPE C,
InfoObject 0PSTNG_DATE: DATS - 000008
BUDAT(000008) TYPE D,
InfoObject 0ITEM_NUM: NUMC - 000003
BUZEI(000003) TYPE N,
InfoObject 0CHRT_ACCTS: CHAR - 000004
CHARTACCTS(000004) TYPE C,
InfoObject 0CREATEDON: DATS - 000008
CPUDT(000008) TYPE D,
InfoObject SL_CPUTM: TIMS - 000006
CPUTM(000006) TYPE T,
InfoObject 0CREDIT: CURR - 000017
CREDIT(000009) TYPE P,
InfoObject 0CURRENCY: CUKY - 000005
CURRUNIT(000005) TYPE C,
InfoObject 0CURTYPE: CHAR - 000002
CURTYPE(000002) TYPE C,
InfoObject 0DEBIT: CURR - 000017
DEBIT(000009) TYPE P,
InfoObject SL_DOCCT: CHAR - 000001
DOCCT(000001) TYPE C,
InfoObject SL_DOCLN: CHAR - 000006
DOCLN(000006) TYPE C,
InfoObject SL_DOCNR: CHAR - 000010
DOCNR(000010) TYPE C,
InfoObject SL_DOCTY: CHAR - 000002
DOCTY(000002) TYPE C,
InfoObject 0FISCPER: NUMC - 000007
FISCPER(000007) TYPE N,
InfoObject 0FISCVARNT: CHAR - 000002
FISCVAR(000002) TYPE C,
InfoObject SL_LINET: CHAR - 000005
LINETYPE(000005) TYPE C,
InfoObject SL_LOGSYS: CHAR - 000010
LOGSYS(000010) TYPE C,
InfoObject SL_POPER: NUMC - 000003
POPER(000003) TYPE N,
InfoObject 0QUANTITY: QUAN - 000015
QUANTITY(000008) TYPE P,
InfoObject 0UNIT: UNIT - 000003
QUANUNIT(000003) TYPE C,
InfoObject 0GL_ACCOUNT: CHAR - 000010
RACCT(000010) TYPE C,
InfoObject 0COMP_CODE: CHAR - 000004
RBUKRS(000004) TYPE C,
InfoObject 0COSTCENTER: CHAR - 000010
RCNTR(000010) TYPE C,
InfoObject SL_REFACT: CHAR - 000004
REFACTIV(000004) TYPE C,
InfoObject SL_RFDCCT: CHAR - 000001
REFDOCCT(000001) TYPE C,
InfoObject SL_RFDCLN: NUMC - 000006
REFDOCLN(000006) TYPE N,
InfoObject SL_RFDCNR: CHAR - 000010
REFDOCNR(000010) TYPE C,
InfoObject SL_REFRYR: NUMC - 000004
REFRYEAR(000004) TYPE N,
InfoObject SPL_CUR1: CUKY - 000005
RTCUR(000005) TYPE C,
InfoObject 0VERSION: CHAR - 000003
RVERS(000003) TYPE C,
InfoObject SPL_CUR2: CUKY - 000005
RWCUR(000005) TYPE C,
InfoObject 0FISCYEAR: NUMC - 000004
RYEAR(000004) TYPE N,
InfoObject 0CO_AREA: CHAR - 000004
RZZKOKRS(000004) TYPE C,
InfoObject 0PROFIT_CTR: CHAR - 000010
RZZPRCTR(000010) TYPE C,
InfoObject 0PACCOUNT: CHAR - 000010
SACCT(000010) TYPE C,
InfoObject 0PCOMP_CODE: CHAR - 000004
SBUKRS(000004) TYPE C,
InfoObject 0PART_CCTR: CHAR - 000010
SCNTR(000010) TYPE C,
InfoObject 0POSTXT: CHAR - 000050
SGTXT(000050) TYPE C,
InfoObject SL_PPRCTR: CHAR - 000010
SZZPRCTR(000010) TYPE C,
InfoObject SL_TMSTMP: DEC - 000015
TIMESTAMP(000008) TYPE P,
InfoObject 0SALES: CURR - 000017
TURNOVER(000009) TYPE P,
InfoObject 0RECORDMODE: CHAR - 000001
UPMOD(000001) TYPE C,
InfoObject 0USER_NAME: CHAR - 000012
USNAM(000012) TYPE C,
InfoObject 0VTYPE: NUMC - 000003
VALUETYPE(000003) TYPE N,
InfoObject 0VALUATION: NUMC - 000001
VALUTYP(000001) TYPE N,
InfoObject SL_WSDAT: DATS - 000008
WSDAT(000008) TYPE D,
InfoObject SL_SPLTMD: CHAR - 000001
XSPLITMOD(000001) TYPE C,
InfoObject 0ASSET_MAIN: CHAR - 000012
ZZANLN1(000012) TYPE C,
InfoObject 0ASSET: CHAR - 000004
ZZANLN2(000004) TYPE C,
InfoObject 0DEBITOR: CHAR - 000010
ZZKUNNR(000010) TYPE C,
InfoObject SL_ZZLFNR: CHAR - 000010
ZZLIFNR(000010) TYPE C,
InfoObject SL_ZRPRCR: CHAR - 000010
ZZREPPRCTR(000010) TYPE C,
InfoObject SL_ZTCDE: CHAR - 000020
ZZTCODE(000020) TYPE C,
InfoObject 0REF_DOC_NO: CHAR - 000016
ZZXBLNR(000016) TYPE C,
END OF TRANSFER_STRUCTURE .
Global code used by conversion rules
$$ begin of global - insert your declaration only below this line -
TABLES: ...
DATA: ...
$$ end of global - insert your declaration only before this line -
FORM COMPUTE_CREDITOR
Compute value of InfoObject 0CREDITOR
in communication structure /BIC/CSSPL_LINE
Technical properties:
field name = CREDITOR
data element = /BI0/OICREDITOR
data type = CHAR
length = 000010
decimals = 000000
ABAP type = C
ABAP length = 000010
reference field =
Parameters:
--> RECORD_NO Record number
--> TRAN_STRUCTURE Transfer structure
<-- RESULT Return value of InfoObject
<-> G_T_ERRORLOG Error log
<-- RETURNCODE Return code (to skip one record)
<-- ABORT Abort code (to skip whole data package)
FORM COMPUTE_CREDITOR
USING RECORD_NO LIKE SY-TABIX
TRAN_STRUCTURE TYPE TRANSFER_STRUCTURE
G_S_MINFO TYPE RSSM_S_MINFO
CHANGING RESULT TYPE /BI0/OICREDITOR
G_T_ERRORLOG TYPE rssm_t_errorlog_int
RETURNCODE LIKE SY-SUBRC
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel datapackage
$$ begin of routine - insert your code only below this line -
DATA: l_s_errorlog TYPE rssm_s_errorlog_int.
SELECT SINGLE CREDITOR FROM /BIC/AAPOSLVEN00
INTO RESULT
WHERE /BIC/SL_RFDCNR = TRAN_STRUCTURE-REFDOCNR.
IF SY-SUBRC NE 0.
CLEAR RESULT.
ENDIF.
returncode <> 0 means skip this record
RETURNCODE = 0.
abort <> 0 means skip whole data package !!!
ABORT = 0.
$$ end of routine - insert your code only before this line -
ENDFORM.
FORM INVERT_CREDITOR
Inversion of selection criteria for InfoObject 0CREDITOR
This subroutine needs to be implemented only for SAP RemoteCubes
(for better performance) and for the Report/Report Interface
(drill through).
--> I_RT_CHAVL_CS Ranges table for current InfoObject
--> I_THX_SELECTION_CS Selection criteria for all other InfoObjects
<-- C_T_SELECTION Selection criteria for fields of
transfer structure
<-- E_EXACT Flag: Inversion was exact
FORM INVERT_CREDITOR
USING I_RT_CHAVL_CS TYPE RSARC_RT_CHAVL
I_THX_SELECTION_CS TYPE RSARC_THX_SELCS
CHANGING C_T_SELECTION TYPE SBIWA_T_SELECT
E_EXACT TYPE RS_BOOL.
$$ begin of inverse routine - insert your code only below this line-
DATA:
L_S_SELECTION LIKE LINE OF C_T_SELECTION.
An empty selection means all values
CLEAR C_T_SELECTION.
L_S_SELECTION-FIELDNM = 'REFDOCNR'.
Selection of all values may be not exact
E_EXACT = RS_C_FALSE.
$$ end of inverse routine - insert your code only before this line -
ENDFORM.
Thanks for the great help,
Sobhan.Hi manoj,
Welcome to SDN!!
Check this blog:
/people/sap.user72/blog/2005/09/05/sap-bw-and-business-content-datasources-in-pursuit-of-the-origins
Bye
Dinesh -
Cache update problem in Integration Directory
Hi all,
We have a cache update problem in our PI development server.
If we try to edit, save and activate any of the ID objects, under Cache notifications>Central Adapter Engine> all these objects are displayed as gray items.
We have tried:
1. Clearing the SLD Data Cache.
2. Did SXI_CACHE complete refresh.
3. Did CPA cache refresh.
4. Did a complete cache refresh of the server.
5. Restarted the server.
But still the problem has not bee resolved. Could you pls provide your inputs and resolution points.
Thank you very much.
regards,
Jack NusonHI Jack ,
first try to manually update the cache from ID select on your cache notifiaction and click on delta cache refresh button and refresh button .IF it does not yied any result then
Perform a full cache refresh using the URL
http://<host>:<port>/CPACache/refresh?mode=full . If the cache refresh happens properly then your problem will get resolved other wise you have to see the cache log to view why it failed there it will show you the exact reason . You might need to restart your java server also if the problem persist .
Regards,
Saurabh -
Error while doing multiple object updation from EP ! object lock error
HI all,
I am doing multiple object updation using a standard RFC(BAPI_PROJECT_MAINTAIN). The RFC i am calling from Enterprise portal. I am sending data to RFC one by one. But the error i am getting is object is locked by user so data can't be save.
Though i am using Lock and unlock method before and after calling RFC the project lock error comes up.
What might be the reason
regards
sandeepHi Sandeep,
Is the RFC you use for locking in the same model as the bapi BAPI_PROJECT_MAINTAIN? If it is not then you are using two connections for communication with the sap R/3 backend.
You can do 2 things.
1. You could add the RFCs for locking in the same model as the BAPI_PROJECT_MAINTAIN
2. Instead of adding the RFCs in one model synchronize the connections the models use as follows:
IWDDynamicRFCModel model1 = (IWDDynamicRFCModel) WDModelFactory.getModelInstance(Model1.class);
IWDDynamicRFCModel model2 = (IWDDynamicRFCModel) WDModelFactory.getModelInstance(Model2.class);
model1.setConnectionProvider(model2);
You can do this in the wdDoInit. This will make sure both models use the same connection but closing a connection will close both at the same time.
The same problem applies to commit/rollback functionality.
Regards,
Jeschael -
How to cache the objects MANUALLY?
hello
some o-r mapping tools can cache the objects that have been queried,then next time these objects are required,it don't need to access the database again,it can also monitor the database updating.
i wonder how i can implement such "cache" function MANUALLY? because i DON'T want to use ANY o-r mapping tools. i only use the jdbc to query database,then generate the object.
who can give me some clue?? or articles? or sample codes??
thank you!!!!!no you don't understand me,what i want to know is the
mechanism of the cache,and how to implement it myself
without using the o-r mapping tools.
the dao pattern can encapsulate the database
access,but it can NOT cache the object .First you need to define how the caching occurs.
- Can the data in the database change without going through your code?
- Are there multiple copies of your app running at the same time. If yes then what happens if one is updated?
- How many of these can there be and what impact will this have on memory?
- etc.
You also need to identify the 'identity' of an object.
A simple strategy....
- Some layer requests an object using the 'identity'.
- The database layer code looks in a hash for the 'identity'. If it finds it it returns it.
- If it doesn't find it it uses a DAO to load it, then puts it in the hash, then returns it. -
Distributed Cache - large objects
Hi,
I have a need to store a large collection of object associated with one key in the cache. And updates to the cache will happen with one of the object in the collection.
How does coherence handle the sync b/w the distributed cache -- will it be like the whole collection marked dirty and synched again or just the bits that got changed. Ours is a perf intensive application so would like to know the implications of the same.
Thanks in advance for your suggestions.
- AnandHi Anand,
You can use InvocableMap (also see Provide a Data Grid for this - a very simple example is attached.
Regards,
Dimitri<br><br> <b> Attachment: </b><br>Main.java <br> (*To use this attachment you will need to rename 295.bin to Main.java after the download is complete.) -
After Effects CS6: Cache and Reload Footage Problem
After Effects CS6: Cache and Reload Footage Problem
I am having trouble getting my footage to update in an AE project.
In an existing project, there is an image sequence in a composition. I have saved and closed AE, modified the footage (same dimensions and qty. of frames, only the pixel data changes), and then re-launched AE and opened the project. Though I have changed the footage, the old content still appears.
To resolve this, I have done the following:
Edit>Purge>All Memory
Edit>Purge>Image Cache Memory
Edit>Preferences>Media & Disk Cache>Empty Disk Cache
Edit>Preferences>Media & Disk Cache>Clean Database & Cache
From the Project window I've selected all footage and selected Reload
None of these got the footage to update. I could double-click on the footage in the project bin and scrub the play head and the old footage was still displayed.
Finally I had to replace the footage with itself and that resolved the issue.
If this is operator error, lack of understanding the cache functions, or something else, I'd appreciate some assistance. I don't recall this behavior in CS 5.5, so I am guessing this is a change in CS 6.
Win 7 Pro 64bit Service Pack 1
Intel Xeon CPU X5450 @ 3.00 GHz 2.99 GHz
RAM 20 GBabout Illustrator and Photoshop files in CS6 especially - you should work with Ctrl/Cmd+E (Edit Original).
when in Ae and you want to change a source file, use this command on one of the layers
from the source file you wish to change (doesn't matter if its in the timeline or project window) and
your original software linked to that file will open.
when you work this way you make AE reload that file and any change after that will be seen back in AE immediately.
it is also very convenient way to work because there can be no confusion on which file you are on
if you work with multiple source files for example.
even if you made the change with your Photoshop/Illustrator opened file and got back to Ae
and didn't see any change - press on one of the layers Ctrl/Cmd+E and this will refresh it immediately.
This is the case in CS6.
in CC I have noticed that any change I make is refreshed immediately in Ae as if it rechecks the changes all the time,
and didn't even need to use Ctrl/Cmd+E but it's a good habit all the same.
didn't come across a case where that didn't work for be but
if all fails you could always change the folder location of the file, let Ae lose it, then replace footage of the file,
and thus let Ae re-link it back. -
Hi,
I would like to know why is Long objects are not cached internally and pooled in Java. Since Long objects are immutable there shouldn't be any problem in doing this right? Let me know am I missing anything here...Currently for one of my applications Iam planning to do this caching of Long objects myself. But the code for that looked pretty ugly as I need to put the newly constructed Long object into a HashMap and get the reference to the previously cached Long object. I believe providing this implementation will reduce my application memory requriements drastically as I need to cache huge volumes of data (around 1 GB of data need to be cached). Will there be any problems in providing an implementation like this ... Are there any better alternatives ?Objects in general take somewhere in the region of 24-32 bytes to represent (excluding any member
variables) therefore Long will require somewhere in the region of 32 to 40 bytes to represent. The
hashMap you use to cache your Longs creates additional overhead (we'll ignore this for now as it can be
amortised over the individual unique Longs that you cache.
a long takes 8 bytes to store.
a reference takes 4 bytes (on a 32 bit machine 8 on a 64 bit JVM)
Therefore on 64 bit machines there is no advantage. Caching will always take more memory then using
native longs.
on a 32 bit VM the advantage of using cached Longs when compared to native longs occurs when you
have an average of at least 8 references to each unique Long. (for a large number of unique Longs)
However there are, I believe, plans to do this in 1.5. However they are not doing it to save memory. They
are doing it to improve the performance of autoboxing. Also the cache will not be dynamic it will be of
fixed size and created when the VM starts up. Basically values in the range -128 to 127 (or something
similar) will be cached for byte, short, int , long.
matfud -
ArrayCollection merging and Objects update
Hi,
I wonder if there is a common way or something provided in the framework to handle objects update.
For instance suppouse you have and application that displays a list of Cars, and you want to update that list each 1min automatically since some cars gets busy, offline, etc (each item list displays car number and status icon).
Also you want to allow users to select a car to make another request and bring details of the car status like gps position, status, fuel, driver, list of recent trips... (this car details also must be updated each one minute)
Now if I make a request to update the cars list and clear the ArrayCollection that contains the cars displayed by the list and fill it with the new data, that will force the List to be refreshed loosing for instance selected car and other issues. Also if I get all the car details and step over the last details all the details component data will be redraw. So it seems that the way to go is not to completly replace the objects but update it's properties or elements.
So the question is, There is any common way to update this elements without having to code that update myself? Is not that I'm lazy but maybe there is a best practice to do that or something.
(I'm not using Blaze or LiveDataCycle)
thanks in advance.
Polaco.Hi,
Try this link -
http://sqlblog.com/blogs/andy_leonard/archive/2007/07/09/ssis-design-pattern-incremental-loads.aspx
sathya - www.allaboutmssql.com ** Mark as answered if my post solved your problem and Vote as helpful if my post was useful **. -
Hi ,
Pls tell me how many types of Cache in XI are there and
explaining them simply.
RegardsHi
There are 3 caches,
1) SLD Cache - Used to cache the objects you created in SLD to runtime.You can check if SLD cache is updated or not in Integration repostory or Integration Directory.
2) CPA cache - Used to cache , adapter or communication channels as well as changes to adapter fraemwrok to runtime.You can check the status of this cache in http://<host><port>/CPACache
3) Repository cache - Used to cache Development obejcts from IR and ID e.g Message Type , Interface, Receiver determination etc .You can track this in SAP Transaction cose SXI_CACHE.
Hope this help you.
Refer below link for Cache monitoring
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
Properties for Service SAP XI AF CPA Cache (SAP Library - Configuration of Usage Type Process Integration (PI))
http://help.sap.com/saphelp_nw04s/helpdata/en/a8/22ee41c334c717e10000000a155106/frameset.htm
How to Handle XPI Caches in SAP NetWeaver 2004s (NW7.0)
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c0332b2a-eb97-2910-b6ba-dbe52a01be34
Check this note 764176, & below links.
Unable to determine name of central adapter engine
Wrong Adapter engine in RFC Adapter after export/import
Check this guide for how to handle the cache:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1a69ea11-0d01-0010-fa80-b47a79301290 -
I have an ap, Barcode Scanner that will not complete an update. It keeps trying to install. I went in and did a force stop on Market and that did not work. I uninstalled the ap but the update is still running. How can I kill it?
ThanksI had that problem last week and this worked for me:
Go to Settings-->Applications-->Manage applications. Click on "Market" app and "Clear cache" and "Uninstall updates".
Everything worked fine after that. -
Recordset - updating 2 tables with 1 recordset using application object update record
I have a recordset that uses a field from 2 different tables
with a select statement where clause that joins a userid. I can
display the field’s data just fine. Now I want to use the
Application object “update record” so I can modify
either of the fields. The problem is the Application object
“update record” only allows you to update one table.
How does Dreamweaver mx 2004 allow me to update 2 tables with one
recordset and 1 submit button? Currently using php.
Example of where:
Where member.userid = member_detail.userid
I tried creating the one form with the field from the first
table and that works just fine. I added the other field from the
other table into the form but ofcourse there isn’t any code
that will update the second table so it won’t work.
My application requires me to update alot of fields between 2
tables at the same time.
Does anyone know a way using Dreamweaver mx 2004 to do this?
I don’t have much php experience.jon-rookie wrote:
> DreamerJim,
>
> I am sorry but I don't think you are correct. I just
can't believe that with
> all the powers to be at Macromedia and now Adobe can't
figure out how to update
> two tables at once. There are millions of db's out there
that require this. I
> spent several hours today perusing lots of posts on the
internet. It seems I
> am not the only one out there that has asked this
question. Unfortunately
> there are no good answers yet to my surprise.
>
> I did find a Dreamweaver extension that does exactly
what I myself and many
> others want. The problem is it is no longer available
unless you purchase a
> bundle of software from Adobe.
>
> I have not looked into it in detail so I am not 100%
sure that is accurate!
>
> Still, alot of php programmers do this all the time
without much trouble. I
> just want to know if Dreamweaver mx 2004 has the
capability if a person knows
> the right steps.
>
> Hopefully a Dreamweaver expert will post something to
let us know for sure.
> Until then I am stuck.
>
Not even CS3 has this built in, you will either have to code
it yourself
or buy the extension you have found. Dreamweaver gives you
basic
features to help you develop applications, but if you want to
do
anything really clever you have to do it yourself.
One thing to consider is maybe creating an SQL view that is
can be
updated. I am pretty sure it exists, then you use the view
instead of
the table in the update behaviour. I have never done it
myself, but I am
sure it can be done.
Steve -
Update problem (deepMergeClone, registerObject, ... )
Hi all,
I have a SLSB in which I have an "updateProduct(Product rmiProduct)" function. Role of this function is: update one product and its relationship (Prices, Images, ...) and at the same time update other products position if needed. (concept to order products)
To update the product, I use uow.deepMergeClone(rmiProduct); ... this works fine. In the same time I want to update other productsPosition with for example this method: decPosition(findProductsByPositionGreater(currentPosition.intValue()));
And in the decPosition(..) method I use registerObject to update objects:
Product productClone = (Product) uow.registerObject(product);
It doesn't work... Other products position are not updated. Only the main product is updated correctly. To understand what could be wrong, I commented the line :
//uow.deepMergeClone(rmiProduct);
After that, products position were successfully updated! ...
When we do a deepMergeClone(...) we cannot do other object updates?
Please, If you need further information or if you can directly help me with some comments... don't hesitate!
Thanks in advance!The method deepMergeClone will iterate over the provided object tree merging the data into the clones in the UnitOfWork. If the positions of the other products are not updated in the object tree deepMergeClone will overwrite the changes with the data from the object tree. To prevent this issue you can use mergeCloneWithReferences() or mergeClone() which will not cascade to the related products. Alternatively you can ensure that deepMergeClone is executed before you make any changes to the other products.
--Gordon -
Statement caching and batch update
Can these 2 JDBC features work together ?
Is it possible while statement is cached to be reparsed (soft) if used in batch update ?
I am asking this questions because i have a sitution where an insert is cached using implicit statement caching and then put in a batch to exeute batch updates !!! From statspack reports i find that 1/3 of statements are reparsed ... even soft !!!Statement caching and batch update work fine together. The most common cause of unexpected soft parses is changing the type of some parameters. If you first bind one type, setInt(1, ...), do addBatch, then bind another type to the same parameter, setString(1, ...), and do addBatch, you will get a soft reparse. There is nothing the JDBC driver can do about this, the RDBMS requires it.
In general, whatever parse behavior you see with statement caching you would also see without it.
Douglas -
How to check/verify running sql in lib cache is using updated statistics of table
How to check/verify running sql in lib cache is using updated statistics of table used in from clause.
one of my application table is highly busy i.e frequent update/insert/delete.
we gather table stats every 30 min.Hello, "try dynamic sampling" = think "outside the box", maybe hit two birds with same stone.
As a matter of fact, I was just backing up your statement: "30 minutes seems pretty extreme"
cheers
Maybe you are looking for
-
I have a new Macbook Pro hooked up to a new Belkin wireless router. I can connect to the internet without a problem. I have an HP officejet printer hooked up the the router to work wirelessley, The router is reading it as connected. My computer reads
-
I just got the iPhone 5 and took it on a trip and took a bunch of photos on it. I just came home and hooked it up to my Mac for the first time and hit restore. All of my trip pictures disappeared. Is there any way I can retrieve them?
-
Photo web gallery in dreamweaver - problem
while creating a photo web gallery in dreamweaver (commands - create photo web album) an error occurs - when I browse pics by choosing my images folder, program says it's empty! It cant see the files! these are normal jpg and adding these pics worked
-
Limit of pictures for slideshow?
Hi. Is there a limit to how many pictures you can have for a slideshow using Front Row? I just created a slideshow from iPhoto (latest version) with 1200 pictures. Then when I played it it just stopped after so many and the screen went blank. Any sug
-
Hello, I'm implementing RFC monitor with CCMS and I have a problem. I was able to implement the method with an auto-reaction method of send mail. It is working fine but it doesn't repeat the alert! Let's say, imagine that the RFC isn't working since