Class Data Sharing in Java 5
Hi All,
I am looking at porting over our current Java application from Java 1.4.2 to Java 1.5.
One of the main reasons is because of the CDS facility in Java 1.5.
Running the same app, one on 1.4.2 and the other on 1.5, on 1.5 it uses about 20% more memory !!!!
This application involves 3 JVM's running communicating via RMI.
When I start each of the applications with -Xshare:on, the first starts fine, indicating it is using CDS,
(-showversion parameter will indicate sharing), but then the next two wont start giving an error indicating
the shared archive cannot be accessed.
Before I started the apps I manually created the shared archive using the call java -Xshare:dump which
places the classes.jsa file in the directory jre/lib/i386/client/classes.jsa
I am running an Intel Solaris platform.
Any ideas why this isnt working ?
ok, I have some more information after doing more investigation...
Here is the bug which I submitted to Sun...
FULL OS VERSION :
SunOS con1 5.8 Generic_108529-29 i86pc i386 i86pc
A DESCRIPTION OF THE PROBLEM :
I am running an application with 3 JVM's. I have manually enabled Class Data Sharing using the command java -Xshare:dump. This seems to work fine.
When I start the first JVM with the command line option -Xshare:on it seems to start fine and indicates "sharing" when I print out -showversion.
Then when I start any subsequent JVM's with -Xshare:on AND the -Xmx5m parameter I receive the following error:
An error has occured while processing the shared archive file. Unable to reserve shared region. Error occurred during initialization of VM Unable to use shared archive.
It seems to work fine if I dont set the maximum heap size.
THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: No
THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: No
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Try to execute a JVM with class data sharing on, then try it again with class data sharing on, AND trying to set the maximum heap size.
EXPECTED VERSUS ACTUAL BEHAVIOR :
It should still allow CDS.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
An error has occured while processing the shared archive file. Unable to reserve shared region. Error occurred during initialization of VM Unable to use shared archive.
REPRODUCIBILITY :
This bug can be reproduced always.
The error only occurs when using Xshare AND Xms<NUMBER>m as parameters !
Similar Messages
-
Javaagent and class data sharing with Java 6.0
Hi,
I'm trying to use instrumentation (using the -javaagent) but
I noticed that when I run the my application with JDK 1.6 it loads all system
classes from the "shared objects file" and the transformer has no chance to run.
With JDK 1.5 it works fine, as well as in debug mode of JDK 1.6.
Is this normal or it is a bug? If it is normal, how should I instrument the system classes?
Thanks in advance,
GenadyI just found that the reason it was working for me with JDK 1.5 is that my classes.jsa file was corrupted for some reason.
So the behavior is consistent for both JDK 1.5 and 1.6.
I also found that if I add
Can-Redefine-Classes: true to the manifest (even if I don't do any class redefinitions) it causes the class data sharing to be disabled.
This workaround is good enough for me.
Genady -
Class Data Sharing : what the definition of JSA ?
Hi everybody,
I read the article on Class Data Sharing (http://java.sun.com/j2se/1.5.0/docs/guide/vm/class-data-sharing.html) and they speak about the file classes.jsa
I'm curious and I would like to know the definition of JSA extension.
Maybe JavaSharedArchive ?
google say me that JavaSharedArchive is used by Mac but not by JRE1.5 !
Thanks for your explications !
ObelixSince the point of using a hotspot is to provide data to other devices, the answer to your question is YES.
-
Class Data Sharing for User Defined Classes
i am using jdk 5.0 . JDK 5.0 supports class data sharing for system level classes. Is there any way a class data sharing be done for a user defined class?
Samantha10 wrote:
Is this class data sharing possible for user defined classes also? i have a singleton class which i am invoking through a script. The script has been scheduled to run every 1 sec . Since it is being invoked every 1 sec hence the singleton pattern is failing . Hence if the this class data sharing is possible then the singleton pattern can be made applicable.If you have a single process and you have a single class loaded by two different ClassLoader instances
in some respects they will be two different classes
if (class1 instanceof class2.getClass())returns false.
This is not the case for Java core classes because they are always loaded by the SystemClassLoader.
You write you
have a singleton class which i am invoking through a script. What approach to you use to invoke the singleton?
I am trying to figure out if you launch a new JVM every second...
Maybe you can use Nailgun. -
I am trying to benchmark memory footprint using the class data sharing feature on Solaris8 and Solaris9.
I wrote a small sample java program MyApp.java as follows,
import java.lang.*;
public class MyApp {
public static void main(String[] args) {
System.out.println("Java VM Version Number = " + System.getProperty("java.vm.version"));
long maxMem = Runtime.getRuntime().totalMemory();
System.out.println("Total Memory in bytes= " + maxMem);
long freeMem = Runtime.getRuntime().freeMemory();
System.out.println("Free Memory in bytes= " + freeMem);
long memUsed = maxMem - freeMem;
System.out.println("Memory Used in bytes= " + memUsed);
long t1 = System.currentTimeMillis();
for (int i = 0; i < 3; i++)
try
System.out.println("iteration count = " + i+1);
Thread.sleep(1000 * 60);
long t2 = System.currentTimeMillis();
long t3 = t2 - t1;
System.out.println("time elapsed in milliseconds = " + t3);
catch (InterruptedException e)
$JAVA_HOME = /packages/sun/j2sdk1.5.0_02/jdk1.5.0_02/
I ran it both the machines with the following options
1) $JAVA_HOME/bin/java �client �Xshare:on MyApp
2) $JAVA_HOME/bin/java �client �Xshare:off MyApp
I ran the pmap command with �x option to get the readings
A) Solari8:
VM Option RSS Shared Mem Private Mem
Xshare:on 53584KB 50600KB 2984KB
XShare:off 11456KB 7808KB 3648KB
JDK1.4 29736KB 26392KB 3344KB
B) Solaris9:
VM Option RSS Anonymous mem
Xshare:on 49384KB 3048KB
Xshare:off 48576KB 3704KB
JDK1.4 33656KB 2856KB
These numbers repeat for multiple instances of the same application.
I do not see the expected memory savings.
I am trying to find out if I am missing any step in the process of using
Class Data Sharing feature of JDK1.5
Thanks!!Samantha10 wrote:
Is this class data sharing possible for user defined classes also? i have a singleton class which i am invoking through a script. The script has been scheduled to run every 1 sec . Since it is being invoked every 1 sec hence the singleton pattern is failing . Hence if the this class data sharing is possible then the singleton pattern can be made applicable.If you have a single process and you have a single class loaded by two different ClassLoader instances
in some respects they will be two different classes
if (class1 instanceof class2.getClass())returns false.
This is not the case for Java core classes because they are always loaded by the SystemClassLoader.
You write you
have a singleton class which i am invoking through a script. What approach to you use to invoke the singleton?
I am trying to figure out if you launch a new JVM every second...
Maybe you can use Nailgun. -
Class Data Sharing (CDS) and memory analys with pmap
Hi everybody,
I read that CDS can decrease the memory footprint by sharing some librairies.
I did some tests on PowerPC board and embeddedJVM 1.5 with 128Mo ROM
I wrote a HelloWorld with a sleep(10) and see the results :
# java -Xshare:off HelloWorld
mapped: 172568 KB writable/private: 165708 KB shared: 32 KB
# java -Xshare:on HelloWorld
mapped: 201112 KB writable/private: 188604 KB shared: 5680 KBThe shared memory increase, normal...
The memory mapped and writable/private increase, I thought that memory will decrease...
so, where is the benefits ?
And the mapped memory is > to board memory ! why ?
thanks for your help
Obelixsomebody can do this tests please :
Write a HelloWord.java with a sleep() of 10s and execute this scripts :
#!/bin/sh
java -version >> testsCDSoff.txt 2>&1
java -Xshare:off HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSoff.txt
java -Xshare:off HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSoff.txt
java -Xshare:off HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSoff.txtand
#!/bin/sh
java -version >> testsCDSon.txt 2>&1
java -Xshare:on HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSon.txt
java -Xshare:on HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSon.txt
java -Xshare:on HelloWorld &
PID=$!
sleep 2
pmap -d $PID | grep mapped >> testsCDSon.txtand then dump testsCDSoff.txt and testsCDSon.txt here :D
Look at mines :
testsCDSoff.txt
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
mapped: 237220K writeable/private: 186972K shared: 44740K
mapped: 237220K writeable/private: 186972K shared: 44740K
mapped: 237220K writeable/private: 186972K shared: 44740K
testsCDSon.txt
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
mapped: 265808K writeable/private: 210252K shared: 50048K
mapped: 265808K writeable/private: 210252K shared: 50048K
mapped: 265808K writeable/private: 210252K shared: 50048Kwhere is the benefits ? I did an error somewhere or I don't understand CDS ? -
Mapping data model to java classes and Interface.
Need help in mappning my data model into java classes;
Here are some of the details:
Table, Poll:
PollID int
PollName varchar
BusinessUnit varchar
DisplaySchemeID int // reference to DisplayScheme table.
Table, DisplayScheme
DisplaySchemeID
DisplaySchemeName
etc
Table, URL
UrlID
UrlName
UrlDesc
Table, PollURL
PollURLID
PollID
UrlID
PublishDate
etc
Table, Tag
TagID
TagName
PollID
So, a POLL is associate with a DisplayScheme.
A Poll can have many URLs and a URL can be associate with many Polls , mapped in the PollURL table.
and same is the situation with tags.
Essentially I want to learn how to do one to many mappning and many to many mapping.
Also to add, since I plan to use Ibatis for OR mapping.
So I should a Parameter call to map for creaint a Poll. And to create a poll the form submitted will have:
- PollName
- URLs ( multiple )
- one display scheme.
- Tags ( many )
So if you can show how to write a DAO createPoll method, then it would be great.
Not sure if am asking a lot, but this would be a great example to move forward.The below is the sample DAO Class.
For your case, you have to create your own PollBean with getters and setters and just pass the object to the method
public int create(Connection con, ProjectBean projectBean) throws SQLException {
int result = 0;
String insertQuery = " INSERT INTO" +
" M_PROJECT(" +
" PROJECT_ID," +
" PROJECT_NAME," +
" PROJECT_DESCRIPTION) " +
" VALUES(?,?,?,?)";
initPrepareStmt(con, insertQuery);
setString(projectBean.getProjectID());
setString(projectBean.getProjectName());
if(projectBean.getProjectDescription().equals("")){
setString(" ");
}else{
setString(projectBean.getProjectDescription());
result = executeUpdate();
return result;
} -
Accessing ServletContext from Java class Data Control
I'm writing some business service classes as plain old java classes that will be bound to a JSP using ADF and STRUTS. The business logic requires the real path of the servlet context to access a file. How do I call servletContext.getRealPath("/WEB-INF/test.xml")?
I know this is mixing web tier code into model code, but I don't know any other way to do this.
Thanks in advance...Ok, it looks like I'll have to define my own action class and pass the pathname on to the data control class.
-
Create data control from java class, not see "ADF Parameter Forms" option
Hi,
I have created a Fusion Web Application (ADF) in jdev 11g. In the application model project, I created a java class. Inside the java class, I have a public method as below
public Asset [] searchAsset3(SearchTerm s) // SearchTerm is a java bean. It implements java.io.Serializable.
I created data control from my java class. After that, I see an xml file generated under the same folder of my java class. Here is the xml content.
<?xml version="1.0" encoding="UTF-8" ?>
<JavaBean xmlns="http://xmlns.oracle.com/adfm/beanmodel" version="11.1.1.53.62"
id="AIAAsset" Package="oracle.apps.aia.oer.model"
BeanClass="oracle.apps.aia.oer.model.AIAAsset" isJavaBased="true">
<MethodAccessor IsCollection="true"
Type="com.flashline.registry.openapi.entity.Asset"
BeanClass="com.flashline.registry.openapi.entity.Asset"
id="searchAsset" ReturnNodeName="Asset"
CollectionBeanClass="UpdateableCollection">
<ParameterInfo id="name" Type="java.lang.String" isStructured="false"/>
<ParameterInfo id="version" Type="java.lang.String" isStructured="false"/>
<ParameterInfo id="description" Type="java.lang.String"
isStructured="false"/>
</MethodAccessor>
<MethodAccessor IsCollection="true"
Type="com.flashline.registry.openapi.entity.AssetSummary"
BeanClass="com.flashline.registry.openapi.entity.AssetSummary"
id="searchAssetSummary" ReturnNodeName="AssetSummary"
CollectionBeanClass="UpdateableCollection">
<ParameterInfo id="name" Type="java.lang.String" isStructured="false"/>
<ParameterInfo id="version" Type="java.lang.String" isStructured="false"/>
<ParameterInfo id="description" Type="java.lang.String"
isStructured="false"/>
<ParameterInfo id="type" Type="java.lang.String" isStructured="false"/>
</MethodAccessor>
<MethodAccessor IsCollection="true"
Type="com.flashline.registry.openapi.entity.Asset"
BeanClass="com.flashline.registry.openapi.entity.Asset"
id="searchAsset3" ReturnNodeName="Asset"
CollectionBeanClass="UpdateableCollection">
<ParameterInfo id="s" Type="com.flashline.registry.openapi.query.SearchTerm"
isStructured="true"/>
</MethodAccessor>
<ConstructorMethod IsCollection="true"
Type="oracle.apps.aia.oer.model.AIAAsset"
BeanClass="oracle.apps.aia.oer.model.AIAAsset"
id="AIAAsset"/>
</JavaBean>
Then, in application user interface project, I created a JSPX page. From the data controls palette, I want to drag and drop the searchAsset3 onto my page. However, I don't see an option for me to choose "Create -> Parameters -> ADF Parameter Form". I only see "Create -> Methods". Unlike other public methods (e.g.searchAssetSummary and searchAsset) which have simple data type as input, I can see the "Create -> Parameters -> ADF Parameter Form" option when I drag and drop to my jspx page. Is that something I missed while creating data controls?
Thanks.
Arnold.Then, my other question is how do you do the bindings? I drag and drop the attributes from SearchTerm bean. Now the pagedef file has the AttributeValues added but my method is actually expecting one input parameter of type SearchTerm. How do you bind the attributes to the input of the method? Thanks.
See below of my pagedef xml file.
<?xml version="1.0" encoding="UTF-8" ?>
<pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
version="11.1.1.53.62" id="SearchAssetBySearchTerm1PageDef"
Package="oracle.apps.aia.oer.view.pageDefs">
<parameters/>
<executables>
<variableIterator id="variables"/>
<methodIterator Binds="SearchTerm.result" DataControl="AIAAsset"
RangeSize="25"
BeanClass="com.flashline.registry.openapi.query.SearchTerm"
id="SearchTermIterator"/>
</executables>
<bindings>
<methodAction id="SearchTerm" RequiresUpdateModel="true"
Action="invokeMethod" MethodName="SearchTerm"
IsViewObjectMethod="false" DataControl="AIAAsset"
ClassName="com.flashline.registry.openapi.query.SearchTerm"
ReturnName="AIAAsset.methodResults.SearchTerm_AIAAsset_SearchTerm_result"/>
<attributeValues IterBinding="SearchTermIterator" id="key">
<AttrNames>
<Item Value="key"/>
</AttrNames>
</attributeValues>
<attributeValues IterBinding="SearchTermIterator" id="operator">
<AttrNames>
<Item Value="operator"/>
</AttrNames>
</attributeValues>
<attributeValues IterBinding="SearchTermIterator" id="value">
<AttrNames>
<Item Value="value"/>
</AttrNames>
</attributeValues>
<methodAction id="searchAsset3" RequiresUpdateModel="true"
Action="invokeMethod" MethodName="searchAsset3"
IsViewObjectMethod="false" DataControl="AIAAsset"
InstanceName="AIAAsset.dataProvider"
ReturnName="AIAAsset.methodResults.searchAsset3_AIAAsset_dataProvider_searchAsset3_result">
*<NamedData NDName="s"*
NDType="com.flashline.registry.openapi.query.SearchTerm"/>+
</methodAction>
</bindings>
</pageDefinition> -
About Thread resource (data) sharing
I am new to java. In my project, there is scenario where one thread (Main Thread) creates a resource (data) and create new thread and then that resource (data) needs to be access by thread which is running on same application which is created by Main Thread.How can access a thread resource (data) which is created Main Thread from another thread which also created Main Thread in java?
Thanks,
SidiqYou could pass it as a parameter to the constructor to your class that implements Runnable (do not extend Thread). Or you could make it available via some globally accessible variable--e.g. a public static member of some class. Or, I think there are tools in java.util.concurrent that you could use for inter-thread data sharing, depending on how things change as you two threads do their work.
You haven't provided enough detail for a more specific answer than that. -
View Object to read data from a java file
Hi,
I am using JDeveloper 11.1.1.4 and ADF-BC in my application.
For one of my view objects , I want the data to be read from a java file which exposes some method to return a collection.
I cannot use a static view object in this case.
Please suggest the best way to implement this requirement.Basically build a view object that should read data from a java file.
Thanks,
PraveenDepending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html -
Data Grid Display child Class data
Hi,
I have 2 Action Script class binded to remote java class
Class 1
package hmil.setup.model
import hmil.com.general.model.Employee;
[Bindable]
[RemoteClass(alias="hmil.setup.model.Area")]
public class Area
public function Area()
public var ARMST_AREA_ID:int;
public var ARMST_CMPN_NO:String;
public var ARMST_CORP_NO:String;
public var ARMST_SCTN_TYPE:String;
public var ARMST_CRTE_USR_NO:String;
public var ARMST_CRTE_TIME:Date;
public var ARMST_UPDT_USR_NO:String
public var ARMST_UPDT_TIME:Date;
public var ARMST_DLR_LIST:ArrayCollection;
public var ARMST_EMP:Employee;
Class 2
package hmil.com.general.model
[Bindable]
[RemoteClass(alias="hmil.com.general.model.Employee")]
public class Employee
public function Employee()
public var EPMST_ID:Number;
public var EPMST_CMPN_NO:String;
public var EPMST_CORP_NO:String;
public var EPMST_EMP_NO:String;
public var EPMST_DLR_NO:String;
public var EPMST_EMP_NAME:String;
When the remote java method returns a list of Area object through Blaze DS this list can be assiged as data to the Data Grid
The DataGridColumn dataField can be mapped to the column name and it displays properly
<mx:DataGridColumn dataField="ARMST_AREA_ID" headerText="Id"/>
But lets say I wanted to display the child value (ARMST_EMP.EPMST_ID ) in the Data Grid
Since the sever returns the Parent Java Object which contains the related Employee as inner Object.
The Objetcs are deserialized to AS class objects.
But how to display the child columns in data grid.
If i give the data field as ARMST_EMP it is displayed as Object. but if i mention the datafield as ARMST_EMP.EPMST_ID, it does not display anything.
please let me know how to display the child object in datagrid
ThanksHi Mugunda, did you ever find out how to do this?
-
Static lookup lists:read data from a Java *.properties file
Hi
i need to make static lookup lists i am using read data from a Java *.properties file
i am using the Class "PropertyFileBasedLookupViewObjectImpl" that wrote by Steve Muench in ToyStore.
but i need to use the default language for that i update the loadDataFromPropertiesFile()
method to find the correct properties file
String temp=Locale.getDefault().getLanguage();
String propertyFile =
getViewDef().getFullName().replace('.', '/')+"_"+temp+ ".properties";
the problem:
For English(TEST_en.properties) it is good and working
For Arabic(TEST_ar.properties) read from correct file _ar.properties
but the dispaly character is wrong
When Debug
In the File 1=دمشق
In debug 1=/u32423Depending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html -
Date Difference in Java Script
Hi,
I need a validations for two dates.
"From Date" should be less than "To Date"
I am sure that I am getting two dates in valid format only as I am picking then from a Calendar Object.
I need to check only one condition that From Date should be less than To Date.
I am getting the Date values as String as these are from a text field in the HTML.
The date format(pattern) is not fixed as it depends on the Locale Settings.
The date should support all the patterns available.
I am not able to parse the dates to a valid value.
I am facing problems with some formats(MM.dd.yyyy) while parsing to a date value.
new Date(07.01.2004) --> giving NaN.
Kindly suggest me,
Thanks
NagalakshmiI think you should use java.text.SimpleDateFormat, for example:
DateFormat df = new SimpleDateFormat("MM.dd.yyyy");
try {
Date risult = df.parse("07.01.2004");
} catch (ParseException e) {
// do something with exception
}To compare the dates try "before" and "after" methods of class Date. -
Class-data versus data and methods versus class-methods in OO ABAP
Hi
I was going thorugh following OO ABAP code.
CLASS vessel DEFINITION.
PUBLIC SECTION.
METHODS: constructor,
drive IMPORTING speed_up TYPE i,
get_id RETURNING value(id) TYPE i.
CLASS-METHODS: start,
objects,
inheritance,
interfaces,
events.
PROTECTED SECTION.
DATA: speed TYPE i,
max_speed TYPE i VALUE 100.
PRIVATE SECTION.
CLASS-DATA object_count TYPE i.
DATA id TYPE i.
ENDCLASS.
Whats is difference between methods and class-methods ?
What is the difference between data and class-data ?Hi Rajesh,
There are two types of componenets in a class
1)Static components
2) Instance components
Instance components exist for every instance of the class, while static exist only once for any number of instances of the class.
Components of the class are methods, attributes, events etc.
static attributes are represented by CLASS-DATA and instance attributes are represented by DATA.
static methods hence are done by CLASS-METHODS and can access only static attributes.
Instance methods are done by METHODS and can access any attribute.
For eg: supposing that in a class, there is a static attribute. Suppose after one instance is created, we are setting this static attribute value as 10. Now we are creating another instance of the same class. Now when you try to display the value of this attribute, it will be 10.ie. it needs to be initialized once and can be shared between instances.
Just go through this document..You will get nice info from this.
http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
If you want to go deeper, like object persistence and all, just refer this document.
http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
Regards,
SP.
Maybe you are looking for
-
Aperture 3 save PDF to folder as JPEG option missing from PDF services?
I have Aperture 3 downloaded from the App store in a MAC OSX 10.6.7 but the save PDF to folder as jPEG option is missing from the print menu? I do not have discs to re-install Aperture so can I add a workflow directly to the PDF services library and
-
Error message: libsmime3.dylib is in use and will not allow update
I tried to download the new firefox 5.0, for Mac OS10 when I put it into the application folder the error message showed up: libsmime3.dylib is in use and would not allow new version to replace old I have restarted the computer several times and stil
-
At the end of a call my iPhone screen is dark and doesn't always pop back to the call screen so I can hit End Call. Therefore, the call continues on until it disconnects. How do I get back to that screen short of never putting the thing to sleep? Cou
-
Scanning in as a Bitmap. How to change this back to scanning in as a .PSD file?
Hello, I'm running CS3 on W7. Photoshop works fine. Problem is, when I used to scan anything it always came in as a PSD file. Now, it's coming in as a Bitmap file. How can I change it to scan in docs as a .psd or .pdf extension? Thanks. Mark
-
Failure while updating an iBook
Hello, We are using iBook-Author and have created some iBooks. While transfering an iBook via iTunes to an iPad (3rd) the following error occures: The operation could't be completet (ATError error 16.) After ignoring the error, the tranfer is complet