NIO verses IO

Hi All,
I am using java NIO socketchannel and ByteBuffers for my client/Server communication. It is in blocking mode and single threaded.
Problem Description: From the results it seems that my NIO program is taking more time than old java io. It looks strange as i was expecting
less time in communication using NIO.
In my old IO program i am using underlying socket streams.
Analysis results shows:
1. sun.nio.ch.SocketChannelImpl.write() taking more time than java.io.ObjectOutputStream.writeObject().
2. sun.nio.ch.SocketChannelImpl.read() taking more time than java.io.ObjectInputStream.readObject().
Comparison report between IO and NIO are (for sending/receiving 10,000 messages of around 9K size, msg size is not fixed):
Sender Program:
NIO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 182635.0 ms - Sender_Final.main()
100.0% - 182635.0 ms - Sender_Final.query()
38.91% - 71078.0 ms - java.io.ObjectOutputStream.writeObject()
36.31% - 66321.0 ms - SerializedData.<init>()
*16.29% - 29769.0 ms - sun.nio.ch.SocketChannelImpl.write()*
6.63% - 12119.0 ms - java.io.ByteArrayOutputStream.toByteArray()
1.05% - 1935.0 ms - java.io.ObjectOutputStream.<init>()
0.08% - 158.0 ms - java.io.ByteArrayOutputStream.<init>()
0.07% - 138.0 ms - java.nio.DirectByteBuffer.put()
IO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 23351.0 ms - SimpleSender.main()
100.0% - 23351.0 ms - SimpleSender.query()
*88.6% - 20690.0 ms - java.io.ObjectOutputStream.writeObject()*
9.96% - 2327.0 ms - SerializedData.<init>()
0.47% - 111.0 ms - java.io.ObjectOutputStream.reset()
0.05% - 12.0 ms - java.io.ObjectOutputStream.flush()
Receiver Programs:
NIO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 176942.0 ms - Receiver_Final.main()
100.0% - 176942.0 ms - Receiver_Final.serve()
61.0% - 107935.0 ms - java.io.ObjectInputStream.readObject()
*34.75% - 61494.0 ms - sun.nio.ch.SocketChannelImpl.read()*
1.67% - 2957.0 ms - java.io.ObjectInputStream.<init>()
0.39% - 707.0 ms - java.nio.DirectByteBuffer.get()
0.09% - 163.0 ms - sun.nio.ch.ServerSocketChannelImpl.accept()
0.05% - 103.0 ms - java.io.ByteArrayInputStream.<init>()
IO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 27854.0 ms - SimpleReceiver.main()
100.0% - 27854.0 ms - SimpleReceiver.serve()
*98.78% - 27515.0 ms - java.io.ObjectInputStream.readObject()*
0.13% - 37.0 ms - java.io.ObjectInputStream.<init>()
0.08% - 25.0 ms - java.net.ServerSocket.accept()
Any inputs here ? I am trying to achieve faster communication.
Does NIO always guarantee speed improvement over old IO? If not under what conditions it is advice to use.
I am using new InputStreams and OutputStreams for each message at both ends.
For sending data( Few code snippet):==>
while(true)
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
ObjectOutputStream oStream = new ObjectOutputStream( bStream );
oStream.writeObject (serializedata);
byteArray = bStream.toByteArray();
objOutput.clear();
objOutput.put(byteArray);
objOutput.flip();
numWrite = sc.write(objOutput);
For receiving data ( Few code snippet):==>
while(offset < limit)
ByteArrayInputStream bStream = new ByteArrayInputStream(byteArray,offset ,limit - offset );
ObjectInputStream iStream = new ObjectInputStream( bStream);
serializeData = (SerializedData) iStream.readObject();
offset = limit-bStream.available();
}

Hi Sorabain,
I am not using ByteArrayOutputStream() in my old io programs and the code-snippet given here is for NIO program.
You can see in the performance comparion that old io is not using
ByteArrayOutputStream() or ByteArrayInputStream().
Yes for one thing i have to look into that why SerializedData<init> is taking more time in NIO in compare to old IO. As this is my serialized data class.
In my old IO program i am using underlying socket streams.
Please see a more detailed report below which has the comparion of socketwrite in old and new io both, probably it may throw more light on the cause:
Sender Program:
NIO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 182635.0 ms - Sender_Final.main()
100.0% - 182635.0 ms - Sender_Final.query()
38.91% - 71078.0 ms - java.io.ObjectOutputStream.writeObject()
36.31% - 66321.0 ms - SerializedData.<init>()
*16.29% - 29769.0 ms - sun.nio.ch.SocketChannelImpl.write()*
6.63% - 12119.0 ms - java.io.ByteArrayOutputStream.toByteArray()
1.05% - 1935.0 ms - java.io.ObjectOutputStream.<init>()
0.08% - 158.0 ms - java.io.ByteArrayOutputStream.<init>()
0.07% - 138.0 ms - java.nio.DirectByteBuffer.put()
Hot spots
Name Percentage Time
SerializedData.<init> 36.31 66321.0 ms
java.io.ByteArrayOutputStream.write 34.38 62808.0 ms
sun.nio.ch.SocketDispatcher.write  15.38  28094.0 ms
java.io.ByteArrayOutputStream.toByteArray 6.63 12119.0 ms
java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength 1.14 2098.0 ms
java.io.ObjectOutputStream$BlockDataOutputStream.writeBytes 1.13 2076.0 ms
Sender_Final.query 0.61 1117.0 ms
java.nio.channels.spi.AbstractInterruptibleChannel.blockedOn 0.58 1076.0 ms
java.io.ObjectOutputStream.writeObject0 0.56 1040.0 ms
IO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 23351.0 ms - SimpleSender.main()
100.0% - 23351.0 ms - SimpleSender.query()
88.6% - 20690.0 ms - java.io.ObjectOutputStream.writeObject()
9.96% - 2327.0 ms - SerializedData.<init>()
0.47% - 111.0 ms - java.io.ObjectOutputStream.reset()
0.05% - 12.0 ms - java.io.ObjectOutputStream.flush()
Hot spots
Name Percentage Time
java.net.SocketOutputStream.socketWrite  85.86  20051.0 ms
SerializedData.<init> 9.96 2327.0 ms
SimpleSender.query 0.9 211.0 ms
java.io.ObjectOutputStream$BlockDataOutputStream.writeBytes 0.8 188.0 ms
java.io.ObjectOutputStream.defaultWriteFields 0.6 141.0 ms
java.io.ObjectOutputStream$BlockDataOutputStream.writeInt 0.44 104.0 ms
java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength 0.42 99.0 ms
Receiver Programs:
NIO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 176942.0 ms - Receiver_Final.main()
100.0% - 176942.0 ms - Receiver_Final.serve()
61.0% - 107935.0 ms - java.io.ObjectInputStream.readObject()
*34.75% - 61494.0 ms - sun.nio.ch.SocketChannelImpl.read()* 1.67% - 2957.0 ms - java.io.ObjectInputStream.<init>()
0.39% - 707.0 ms - java.nio.DirectByteBuffer.get()
0.09% - 163.0 ms - sun.nio.ch.ServerSocketChannelImpl.accept()
0.05% - 103.0 ms - java.io.ByteArrayInputStream.<init>()
Hot spots
Name Percentage Time
java.io.ObjectInputStream$BlockDataInputStream.readUTFSpan 42.62 75425.0 ms
sun.nio.ch.SocketDispatcher.read  34.27  60643.0 ms
java.io.ObjectInputStream$BlockDataInputStream.readUTFBody 10.77 19071.0 ms
Receiver_Final.serve 2.02 3583.0 ms
java.io.ObjectInputStream.readClassDescriptor 1.06 1891.0 ms
java.io.ObjectInputStream$BlockDataInputStream.<init> 0.85 1518.0 ms
java.io.ObjectInputStream$PeekInputStream.readFully 0.64 1139.0 ms
java.io.ByteArrayInputStream.read 0.63 1123.0 ms
java.io.ObjectStreamClass$FieldReflectorKey.<init> 0.52 933.0 ms
java.io.ObjectInputStream.readNonProxyDesc 0.48 855.0 ms
java.io.ObjectInputStream.readSerialData 0.44 781.0 ms
java.nio.DirectByteBuffer.get 0.39 707.0 ms
java.nio.channels.spi.AbstractInterruptibleChannel.blockedOn 0.39 702.0 ms
IO Program:
Backtrace
Description of CPU usage for thread main
100.0% - 27854.0 ms - SimpleReceiver.main()
100.0% - 27854.0 ms - SimpleReceiver.serve()
98.78% - 27515.0 ms - java.io.ObjectInputStream.readObject()
0.13% - 37.0 ms - java.io.ObjectInputStream.<init>()
0.08% - 25.0 ms - java.net.ServerSocket.accept()
Hot spots
Name Percentage Time
java.net.SocketInputStream.read  46.31  12900.0 ms
java.io.ObjectInputStream$BlockDataInputStream.readUTFBody 16.81 4683.0 ms
java.io.ObjectInputStream$BlockDataInputStream.readUTFSpan 14.5 4040.0 ms
java.net.PlainSocketImpl.acquireFD 1.64 459.0 ms
java.net.SocketInputStream.read 1.64 458.0 ms
java.net.PlainSocketImpl.releaseFD 1.55 432.0 ms
sun.security.provider.SHA.implCompress 1.09 305.0 ms
SimpleReceiver.serve 0.99 277.0 ms
java.io.ObjectInputStream.readString 0.95 266.0 ms
java.util.HashMap$EntrySet.iterator 0.94 264.0 ms
Edited by: herculeus on Oct 30, 2007 9:59 AM

Similar Messages

  • Mysterious Teardown Problem with NIO

    I have an NIO proxy server which relays state information from a number of servers to a number of clients. A requirement for this system is that we can restart the proxy server (together with a couple of other components) from a web app.
    I tear down the proxy server by
    - interrupting out of the read loop
    - cancelling all keys associated with the channel
    - closing the socket on the channel
    - closing the channel.
    I do this for for both the input (server side) channel and the output (client side) channel.
    I then discard the proxy server, create a new one and start it up.
    Now here's the mysterious bit. The new server operates just fine for a minute or two. And then it stops seeing any input.
    The thread responsible for input reading freezes on the call to -
    myKeysAdded = myAcceptKey.selector().select();and the stack looks something like this:
    WindowsSelectorImpl$SubSelector.poll0(long, int, int[], int[], int[], long)
    WindowsSelectorImpl$SubSelector.poll() line: 270
    WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl$SubSelector) line: 252
    WindowsSelectorImpl.doSelect(long) line: 133
    WindowsSelectorImpl(SelectorImpl).lockAndDoSelect(long) line: 69
    WindowsSelectorImpl(SelectorImpl).select(long) line: 80
    WindowsSelectorImpl(SelectorImpl).select() line: 84
    ProxyServer$BrowserSelector.run() line: 123If I completely destroy the process (and the jvm) and start a new one everything goes back to working normally.
    Has anyone got any suggestions? I'm in hair-tearing mode on this one.
    Thx TOTW.

    I tear down the proxy server by
    - interrupting out of the read loopDon't you mean the select() loop?
    - cancelling all keys associated with the channelUnnecessary.
    - closing the socket on the channel
    - closing the channel.Only one of these is necessary. Closing the socket closes the channel and vice versa.
    When you have closed all the channels, you then need to call selector.selectNow() (search this forum for why), and then close the selector.

  • Java.nio.BufferOverflowException on big Strings ( 87MB)

    Hi!
    When calling getBytes() on a big String the following exception is thrown:
    java.nio.BufferOverflowException
         at java.nio.charset.CoderResult.throwException(Unknown Source)
         at java.lang.StringCoding$CharsetSD.decode(Unknown Source)
         at java.lang.StringCoding.decode(Unknown Source)
         at java.lang.StringCoding.decode(Unknown Source)
         at java.lang.String.<init>(Unknown Source)
         at java.lang.String.<init>(Unknown Source)
         at com.db.janus.Janus.main(Janus.java:99)
    This happens as soon as the size of the String gets bigger than 92003848 bytes.
    I can reproduce it with the following code:
    String x = new String(new byte[92003848]); // --> OK
    String x = new String(new byte[92003849]); // --> Exception
    JDK Version: 1.4.2_06
    OS: Windows XP
    Is this a known bug / limitation? I found a similar bug related to Java on Linux / Solaris, but this one was about getBytes() with Strings > 16MB.
    Thanks for your help!

    Is there any alternative to solve this problem.I am getting the error
    java.nio.BufferOverflowException .This happens in my mail server when the file six\ze of xml where i have stored data about spam/nonspam grows upto 22mb.I have stored this xml in database as blob.at server startup uploading in in my class.Keeps througout in JVM after every 50 th request saving information back to database(about spam/nonspam).Now if xml size grows i am storing this in string to parse etc.it gives this bug error.Sholud i cahnge my datatype or use something as XML Parser to split my xml in pieces(mechanism i am not aware of at all) so that string just takes some size of xml (but here can i use string builder etc.). Now is there any proper solution to this kind of problem whenever i removes some daya from xml spam mail goes to inbox and vice versa.
    Please suggest me some solution if possible.
    complete error is:
    Servlet initialization failed:
    java.nio.BufferOverflowException
    at java.nio.charset.CoderResult.throwException(CoderResult.java:259)
    at java.lang.StringCoding$CharsetSD.decode([BII)[C(Unknown Source)
             at java.lang.StringCoding.decode(Ljava.lang.String;[BII)[C(Unknown Source)
             at java.lang.String.<init>([BIILjava.lang.String;)V(Unknown Source)
             at java.lang.String.<init>([BLjava.lang.String;)V(Unknown Source)
             at zerocode.core.ByteBlock.toString(ByteBlock.java:89)
             at zcCollab.mailProcessing.NaiveBayesClassifier._getInstanceData(NaiveBayesClassifier.java:275)
             at zcCollab.mailProcessing.NaiveBayesClassifier.initialize(NaiveBayesClassifier.java:86)
             at zcCollab.mailProcessing.SimpleDeliveryManager._setupClassifiers(SimpleDeliveryManager.java:409)
             at zcCollab.mailProcessing.SimpleDeliveryManager.<init>(SimpleDeliveryManager.java:62)
             at zcCollab.zcApp.InfoManagerApp._createDeliveryProcessor(InfoManagerApp.java:307)
             at zcCollab.zcApp.InfoManagerApp.initialize(InfoManagerApp.java:294)
             at zerocode.udm.Application._createInstance(Application.java:168)
             at zerocode.udm.Application.createInstanceForServlet(Application.java:111)
             at zerocode.servlet.UdmServlet._createApplication(UdmServlet.java:67)
             at zerocode.servlet.UdmServlet._initialize(UdmServlet.java:52)
             at zerocode.servlet.GenericServlet.init(GenericServlet.java:116)
             at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:292)
             at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:329)
             at org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:657)
             at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
             at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
             at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
             at org.mortbay.http.HttpServer.service(HttpServer.java:879)
             at org.mortbay.http.handler.ForwardHandler.handle(ForwardHandler.java:130)
             at org.mortbay.http.HttpContext.handle(HttpContext.java:1808)
             at org.mortbay.http.HttpContext.handle(HttpContext.java:1758)
             at org.mortbay.http.HttpServer.service(HttpServer.java:879)
    Thanks
    Vijendra                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • My family of four (2 iPhones, 2 iPods) all share the same iTunes account.  Many text messages sent to or from mine or my husband's phones are also received on my daughter's iPod, and vice versa. How do I fix this?

    How can I keep text messages sent from my or husband's phone from being received on daughter's iPod, and vice versa? We have five devices on one iTunes account - 2 iPhones, 2 iPods and an iPad.

    Hello Hrd1977,
    This is typically caused by both devices sharing an Apple ID for iMessage and FaceTime.  I would recommend signing out of iMessage on your daughter's device.  Go to Settings > Messages > Send & Receive, tap your Apple ID, and select Sign Out. Then sign in with the desired Apple ID.
    iOS: Troubleshooting FaceTime and iMessage activation
    http://support.apple.com/kb/TS4268
    Cheers,
    Allen

  • Ok Apple users...Is there a way to delete e-mails on my Mac and not have to delete the same e-mails on my iPhone, and iPad...and vise-versa. I have the Cloud, and thought that everything would sync all of the time. If you know of a setting I need to adjus

    Ok Apple users...Is there a way to delete e-mails on my Mac and not have to delete the same e-mails on my iPhone, and iPad...and vise-versa. I have the Cloud, and thought that everything would sync all of the time. If you know of a setting I need to adjust, please let me know.

    Are you referring to @mac.com, @me.com or @icloud.com emails? Or some other email providers emails?
    If the former, it should do that automatically. If the latter, no. iCloud does not (nor is it supposed to) sync non-Apple provided emails.

  • Using iPhote Keywords with PS Elements and visa-versa

    Howdy,
    Does anyone know if you can xfer (import/export) iPhoto keywords to PS Elements 4 or Photo Bridge and visa-versa?
    Or do you have to create a new Keyword list with Photo Bridge and PS Elements 4

    MV:
    You can use iView MediaPro in the Demo mode to catalog your iPhoto LIbrary and then sync (write) the keywords back to the original file. That will permit other applications to read those annotations in the source file. Check out Tutorial #1 here. The methodology is there to do what you want even though it's geared for a different issue.
    G5 Dual Core 2G, 2G RAM, 22 Display, 250G HD, 250G FW HD, QT 7.0.4P   Mac OS X (10.4.5)   Canon S400, i850 & LIDE 50, Epson R200, 2G Nano

  • Unable to capture while external00 plugged in, vice versa

    Ok, so first time i captured to my external harddrive it all went gravy. second time not so. If my external is plugged in, and I go to log and capture, it does not recognize that there is a camera plugged in through the firewire 400. vice versa. if i have my camera plugged in first and go to capture and log and then plug in my external to set the scratch disks, no way jose. starts freesing up and the spin wheel of death starts spinning. Why would this happen? Solution? Let me know. I need to edit!
    External Harddrive: LaCie harddisk 750gb, firewire 800
    Final Cut 6 Studio 2
    MacBook Pro intel core duo 120gb, 2 gb

    Marc
    I'm not in the States but just as an example, look at these:
    http://www.nitroav.com/product/444/
    http://www.sonnettech.com/product/fwusbexpresscard34.html
    Please make a research. Probably the Macbook Pro forum is a good place to start Searching:
    http://discussions.apple.com/search.jspa?objID=f1152&search=Go&q=firewire+expres scard
    Good luck!
      Alberto

  • While inserting numeric data into a character datatype field and vice versa

    Sir,
        I have a very basic qiestion.Why am i not getting any error while inserting to say employees table a character type data to a numeric type field and vice versa?Iam using Oracle Database 10g Enterprise edition.

    Why am i not getting any error while inserting to say employees table a character type data to a numeric type field and vice versa?
    Oracle tries an automatic conversion, when possible. Post an example of a character type data inserted into a numeric column.

  • RE: Orbix verses Visibroker) FREE YOURSELF of languageconstraints!

    Firstly, thread continuation:
    And my worth: Might be using the 'port=${PORT_NB}' possibility, impossible
    using GUI workshop, but maybe in F-script ?
    Or find a way to use the same distribution installed twice, with different ports ?
    Secondly, remarks on the 'language' matter
    http://babelfish.altavista.com/cgi-bin/translate?
    Btw, this thread was implicitely translated :
    attribution du port => port attribution
    Il semble que la GUI n'autorise que les nombres
    it seems GUI authorizes numbers
    utiliser des variables d'environnemnt .?
    use environment variables ?
    portable... => ? :-)
    WebEnterprise est necessaire car il faut le 'IIOP Gateway' pour communiquer
    WebEnterprise is necessary IIOP Gateway to communicate
    entre Java, ou un ORB, et Forte. Ceci n'est pas disponible avec l'installation de base.
    JAVA ORB FORTE. not disponible ... basic installation
    Thanks :)
    J-Paul gabrielli
    -----Message d'origine-----
    De: Kallambella, Ajith [SMTP:[email protected]]
    Date: mercredi 3 fevrier 1999 17:42
    A: 'J-Paul GABRIELLI'; 'David Bell'; [email protected]
    Cc: [email protected]
    Objet: RE: Orbix verses Visibroker
    .......In English please!!
    Ajith Kallambella. M
    -----Original Message-----
    From: J-Paul GABRIELLI [mailto:[email protected]]
    Sent: Wednesday, February 03, 1999 10:37 AM
    To: 'David Bell'; [email protected]
    Cc: [email protected]
    Subject: RE: Orbix verses Visibroker
    Bonjour,
    Et comment se passe l'attribution du port d'ecoute ?
    Il semble que la GUI n'autorise que les nombres... et ces nombres sont
    explicites dans les btd/btx.
    Peut-on utiliser des variables d'environnement ? Histoire d'etre portable
    :-)=
    j-paul Gabrielli
    DTS
    -----Message d'origine-----
    De: David Bell [SMTP:[email protected]]
    Date: mercredi 3 fevrier 1999 15:38
    A: [email protected]
    Cc: [email protected]
    Objet: Re: Orbix verses Visibroker
    Bonjour,
    WebEnterprise est necessaire car il faut le 'IIOP Gateway' pour communiquer
    entre Java, ou un ORB, et Forte. Ceci n'est pas disponible avec
    l'installation
    de base.
    Cordialement,
    - David
    David Bell
    Forte Software UK
    Tel : +44 378 300 613
    Fax: +44 1344 420905
    Email : [email protected]
    << Fichier: David Bell.vcf>>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Firstly, thread continuation:
    And my worth: Might be using the 'port=${PORT_NB}' possibility, impossible
    using GUI workshop, but maybe in F-script ?
    Or find a way to use the same distribution installed twice, with different ports ?
    Secondly, remarks on the 'language' matter
    http://babelfish.altavista.com/cgi-bin/translate?
    Btw, this thread was implicitely translated :
    attribution du port => port attribution
    Il semble que la GUI n'autorise que les nombres
    it seems GUI authorizes numbers
    utiliser des variables d'environnemnt .?
    use environment variables ?
    portable... => ? :-)
    WebEnterprise est necessaire car il faut le 'IIOP Gateway' pour communiquer
    WebEnterprise is necessary IIOP Gateway to communicate
    entre Java, ou un ORB, et Forte. Ceci n'est pas disponible avec l'installation de base.
    JAVA ORB FORTE. not disponible ... basic installation
    Thanks :)
    J-Paul gabrielli
    -----Message d'origine-----
    De: Kallambella, Ajith [SMTP:[email protected]]
    Date: mercredi 3 fevrier 1999 17:42
    A: 'J-Paul GABRIELLI'; 'David Bell'; [email protected]
    Cc: [email protected]
    Objet: RE: Orbix verses Visibroker
    .......In English please!!
    Ajith Kallambella. M
    -----Original Message-----
    From: J-Paul GABRIELLI [mailto:[email protected]]
    Sent: Wednesday, February 03, 1999 10:37 AM
    To: 'David Bell'; [email protected]
    Cc: [email protected]
    Subject: RE: Orbix verses Visibroker
    Bonjour,
    Et comment se passe l'attribution du port d'ecoute ?
    Il semble que la GUI n'autorise que les nombres... et ces nombres sont
    explicites dans les btd/btx.
    Peut-on utiliser des variables d'environnement ? Histoire d'etre portable
    :-)=
    j-paul Gabrielli
    DTS
    -----Message d'origine-----
    De: David Bell [SMTP:[email protected]]
    Date: mercredi 3 fevrier 1999 15:38
    A: [email protected]
    Cc: [email protected]
    Objet: Re: Orbix verses Visibroker
    Bonjour,
    WebEnterprise est necessaire car il faut le 'IIOP Gateway' pour communiquer
    entre Java, ou un ORB, et Forte. Ceci n'est pas disponible avec
    l'installation
    de base.
    Cordialement,
    - David
    David Bell
    Forte Software UK
    Tel : +44 378 300 613
    Fax: +44 1344 420905
    Email : [email protected]
    << Fichier: David Bell.vcf>>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • ICloud help: universal apps wont automatically download to iphone 4s after downloading them on ipad and vis versa.

    Some apps that are universal will automatically download like, temple run, ibooks, bejeweled. But many other apps that are also universal like watchespn and pandora radio , wont automatically download to my ipad when i download them on my iphone and vis versa. Idk what the problem is and the guy i called at apple couldnt figure it out. Is this happening to anyone else and if so have you fixed it? dont say rebooyt or restart because i did that and nothin happened. Thanks

    On both devices tap Settings > Store
    Toggle Apps off then back on.
    See if that helps...
    edited by cs

  • Java.nio select() method return 0 in my client application

    Hello,
    I'm developing a simple chat application who echo messages
    But my client application loop because the select() method return 0
    This is my code
    // SERVER
    package test;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.nio.channels.SelectionKey;
    import java.nio.channels.Selector;
    import java.nio.channels.ServerSocketChannel;
    import java.nio.channels.SocketChannel;
    import java.util.Iterator;
    import java.util.Set;
    public class Server {
         private int port = 5001;
         public void work() {               
              try {
                   ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
                   serverSocketChannel.configureBlocking(false);
                   InetSocketAddress isa = new InetSocketAddress(port);               
                   serverSocketChannel.socket().bind(isa);
                   Selector selector = Selector.open();
                   serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
                   System.out.println("Listing on "+port);
                   while(selector.select()>0) {
                        Set keys = selector.selectedKeys();
                        for(Iterator i = keys.iterator(); i.hasNext();) {
                             SelectionKey key = (SelectionKey) i.next();
                             i.remove();
                             if (key.isAcceptable()) {
                                  ServerSocketChannel keyChannel = (ServerSocketChannel)key.channel();                              
                                  SocketChannel channel = keyChannel.accept();
                                  channel.configureBlocking(false);                              
                                  channel.register(selector, SelectionKey.OP_READ );
                             } else if (key.isReadable()) {
                                  SocketChannel keyChannel = (SocketChannel) key.channel();
                                  String m = Help.read(keyChannel );
                                  Help.write(m.toUpperCase(), keyChannel );
              } catch (IOException e) {                                             
                   e.printStackTrace();                         
         public static void main(String[] args) {
              Server s = new Server();
              s.work();
    // CLIENT
    package test;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.nio.channels.SelectionKey;
    import java.nio.channels.Selector;
    import java.nio.channels.SocketChannel;
    import java.util.Iterator;
    import java.util.Set;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    public class Client extends JFrame  {
         private String host = "localhost";
         private int port = 5001;
         private SocketChannel socketChannel;
         private Selector selector;
         public void work() {               
              try {
                   socketChannel = SocketChannel.open();
                   socketChannel.configureBlocking(false);
                   InetSocketAddress isa = new InetSocketAddress(host, port);               
                   socketChannel.connect(isa);
                   selector = Selector.open();
                   socketChannel.register(selector, SelectionKey.OP_CONNECT | SelectionKey.OP_READ );
                   while(true) {
                        selector.select();
                        Set keys = selector.selectedKeys();
                        for(Iterator i = keys.iterator(); i.hasNext();) {
                             SelectionKey key = (SelectionKey) i.next();
                             i.remove();
                             if (key.isConnectable()) {
                                  SocketChannel keyChannel = (SocketChannel) key.channel();
                                  if (keyChannel.isConnectionPending()) {
                                       System.out.println("Connected "+keyChannel.finishConnect());                                                                           
                             } else if (key.isReadable()) {                                                                                                                                                           
                                  SocketChannel keyChannel = (SocketChannel) key.channel();                                             
                                  String m = Help.read(keyChannel);
                                  display(m);                                                                                                                                                                                                                   
              } catch (IOException e) {                                             
                   e.printStackTrace();                         
         private void display(final String m) {
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        area.append(m+"\n");
                        textFieed.setText("");
         private void sendMessage(final String m) {
              Thread t = new Thread(new Runnable() {               
                   public void run() {                                                                                
                        try {                         
                             Help.write(m, socketChannel);
                        } catch (IOException e) {               
                             e.printStackTrace();
              t.start();                    
         public Client() {
              addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent e) {
                        System.exit(1);
              textFieed.addKeyListener(new KeyAdapter() {
                   public void keyPressed(KeyEvent e) {
                        if (e.getKeyCode()== KeyEvent.VK_ENTER) {
                             String m = textFieed.getText();
                             sendMessage(m);     
              area.setEditable(false);
              getContentPane().add(textFieed, "North");
              getContentPane().add(new JScrollPane(area));
              setBounds(200, 200, 400, 300);
              show();
         private String messageToSend;
         private JTextArea area = new JTextArea();
         JTextField textFieed = new JTextField();
         public static void main(String[] args) {
              Client s = new Client();
              s.work();
    // HELPER CLASS
    package test;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.CharBuffer;
    import java.nio.channels.SocketChannel;
    import java.nio.charset.Charset;
    import java.nio.charset.CharsetDecoder;
    import java.nio.charset.CharsetEncoder;
    public class Help {
         private static Charset charset = Charset.forName("us-ascii");
         private static CharsetEncoder enc = charset.newEncoder();
         private static CharsetDecoder dec = charset.newDecoder();
         private static void log(String m) {
              System.out.println(m);
         public static String read(SocketChannel channel) throws IOException {
              log("*** start READ");                              
              int n;
              ByteBuffer buffer = ByteBuffer.allocate(1024);
              while((n = channel.read(buffer)) > 0) {
                   System.out.println("     adding "+n+" bytes");
              log("  BUFFER REMPLI : "+buffer);
              buffer.flip();               
              CharBuffer cb = dec.decode(buffer);          
              log("  CHARBUFFER : "+cb);
              String m = cb.toString();
              log("  MESSAGE : "+m);          
              log("*** end READ");
              //buffer.clear();
              return m;                    
         public static void write(String m, SocketChannel channel) throws IOException {          
              log("xxx start WRITE");          
              CharBuffer cb = CharBuffer.wrap(m);
              log("  CHARBUFFER : "+cb);          
              ByteBuffer  buffer = enc.encode(cb);
              log("  BUFFER ALLOUE REMPLI : "+buffer);
              int n;
              while(buffer.hasRemaining()) {
                   n = channel.write(buffer);                         
              System.out.println("  REMAINING : "+buffer.hasRemaining());
              log("xxx end WRITE");

    Here's the fix for that old problem. Change the work method to do the following
    - don't register interest in things that can't happen
    - when you connect register based on whether the connection is complete or pending.
    - add the OP_READ interest once the connection is complete.
    This doesn't fix all the other problems this code will have,
    eg.
    - what happens if a write is incomplete?
    - why does my code loop if I add OP_WRITE interest?
    - why does my interestOps or register method block?
    For code that answers all those questions see my obese post Taming the NIO Circus
    Here's the fixed up Client code
    // CLIENT
    package test
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.nio.channels.SelectionKey;
    import java.nio.channels.Selector;
    import java.nio.channels.SocketChannel;
    import java.util.Iterator;
    import java.util.Set;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    public class Client extends JFrame  {
         private String host = "localhost";
         private int port = 5001;
         private SocketChannel socketChannel;
         private Selector selector;
         public void work() {
              try {
                   socketChannel = SocketChannel.open();
                   socketChannel.configureBlocking(false);
                   InetSocketAddress isa = new InetSocketAddress(host, port);
                   socketChannel.connect(isa);
                   selector = Selector.open();
                   int interest = 0;
                   if(socketChannel.isConnected())interest = SelectionKey.OP_READ;
                   else if(socketChannel.isConnectionPending())interest = SelectionKey.OP_CONNECT;
                   socketChannel.register(selector, interest);
                   while(true)
                        int nn = selector.select();
                        System.out.println("nn="+nn);
                        Set keys = selector.selectedKeys();
                        for(Iterator i = keys.iterator(); i.hasNext();)
                             SelectionKey key = (SelectionKey) i.next();
                             i.remove();
                             if (key.isConnectable())
                                  SocketChannel keyChannel = (SocketChannel) key.channel();
                                  System.out.println("Connected "+keyChannel.finishConnect());
                                  key.interestOps(SelectionKey.OP_READ);
                             if (key.isReadable())
                                  SocketChannel keyChannel = (SocketChannel) key.channel();
                                  String m = Help.read(keyChannel);
                                  display(m);
              } catch (IOException e) {
                   e.printStackTrace();
         private void display(final String m) {
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        area.append(m+"\n");
                        textFieed.setText("");
         private void sendMessage(final String m) {
              Thread t = new Thread(new Runnable() {
                   public void run() {
                        try {
                             Help.write(m, socketChannel);
                        } catch (IOException e) {
                             e.printStackTrace();
              t.start();
         public Client() {
              addWindowListener(new WindowAdapter() {
                   public void windowClosing(WindowEvent e) {
                        System.exit(1);
              textFieed.addKeyListener(new KeyAdapter() {
                   public void keyPressed(KeyEvent e) {
                        if (e.getKeyCode()== KeyEvent.VK_ENTER) {
                             String m = textFieed.getText();
                             sendMessage(m);
              area.setEditable(false);
              getContentPane().add(textFieed, "North");
              getContentPane().add(new JScrollPane(area));
              setBounds(200, 200, 400, 300);
              show();
         private String messageToSend;
         private JTextArea area = new JTextArea();
         JTextField textFieed = new JTextField();
         public static void main(String[] args) {
              Client s = new Client();
              s.work();

  • NIO Socket implementation - delay between select and get data from socket

    Hi all,
    I have implemented a internal CallAPI for RPC over a socket connection. It works fine but if there are more than five clients and some load I have the phenomena that the READ selector returns a SelectorKey but I did not get any data from the socket.
    My implementation is based on NIO has following components:
    + Accept-Thread
    Thread handles new clients.
    + Read-Thread
    Thread handles the data from the socket for the registered client. Each request is handled in an own Process-Thread. A Thread-Pool implementation is used for processing.
    + Process-Thread
    The Process-Thread reads the data from the socket and starts the processing of the logical request.
    In my tests I get the notification of data at the socket. The Process-Thread want to read the data for the socket, but no data are available. In some situations if have to read about 20 times and more to get the data. Between each read attempt I have inserted a sleep in the Process-Thread if no data was available. This have improved the problem, but it already exists. I tested the problem with several systems and jvm's but it seams that it is independent from the system.
    What can I to do improve the situation?
    I already include the read implementation from the grizzly-Framework. But it doesn't improve the situation.
    Socket - Init
         protected void openSocket( String host, int port ) throws IOException
              serverChannel = ServerSocketChannel.open();
              serverChannel.configureBlocking( false );
              serverSocket = serverChannel.socket();
              serverSocket.setReuseAddress( true );
              this.serverhost = host;
              this.serverport = port;
              this.srvAcceptSelector = Selector.open();
              this.srvReadSelector = Selector.open();
              InetSocketAddress isa = null;
              if ( serverhost != null )
                   isa = new InetSocketAddress( this.serverhost, this.serverport );
              else
                   isa = new InetSocketAddress( this.serverport );
              serverSocket.bind( isa, 50 );
              serverChannel.register( this.srvAcceptSelector, SelectionKey.OP_ACCEPT );
         }New Client � Init
         // New Client
         if ( key.isAcceptable())
              keyCountConnect++;
              ServerSocketChannel actChannel =
                   (ServerSocketChannel) key.channel();
              // Socket akteptieren
              SocketChannel actSocket = actChannel.accept();
              if ( actSocket != null )
                   actSocket.finishConnect();
                   actSocket.configureBlocking( false );
                   actSocket.socket().setTcpNoDelay( true );
                   this.registerSocketList.add( actSocket );
                   this.srvReadSelector.wakeup();
         }Read Data from Socket
        protected int readDatafromSocket( ByteArrayOutputStream socketdata )
             throws IOException
             int readedChars = 0;
            int count = -1;
            Selector readSelector = null;
            SelectionKey tmpKey = null;
            if ( sc.isOpen())
                  ByteBuffer inputbuffer = null;
                 try
                      inputbuffer = bufferpool.getBuffer();
                      while (( count = sc.read( inputbuffer )) > 0 )
                           readedChars += count;
                          inputbuffer.flip();
                           byte[] tmparray=new byte[inputbuffer.remaining()];
                           inputbuffer.get( tmparray );
                           socketdata.write( tmparray );
                          inputbuffer.clear();
                      if ( count < 0 )
                           this.closeSocket();
                           if( readedChars == 0 )
                                readedChars = -1;
                           if ( log.isDebug())
                                  log.debug( "Socket is closed! " );
                      else if ( readedChars == 0 )
                           if ( log.isDebug())
                                  log.debug( "Reread with TmpSelector" );
                           // Glassfish/Grizzly-Implementation
                         readSelector = SelectorFactory.getSelector();
                         if ( readSelector == null )
                              return 0;
                          count = 1;
                          tmpKey = this.sc.register( readSelector, SelectionKey.OP_READ );
                         tmpKey.interestOps(
                              tmpKey.interestOps() | SelectionKey.OP_READ );
                         int code = readSelector.select( 500 );
                         tmpKey.interestOps(
                             tmpKey.interestOps() & ( ~SelectionKey.OP_READ ));
                         if ( code == 0 )
                             return 0;
                             // Return on the main Selector and try again.
                           while (( count = sc.read( inputbuffer )) > 0 )
                                readedChars += count;
                               inputbuffer.flip();
                                byte[] tmparray=new byte[inputbuffer.remaining()];
                                inputbuffer.get( tmparray );
                                socketdata.write( tmparray );
                               inputbuffer.clear();
                           if ( count < 0 )
                                this.closeSocket();
                                if( readedChars == 0 )
                                     readedChars =-1;
                           else if ( count == 0 )
                                  // No data
                 finally
                      if ( inputbuffer != null )
                           bufferpool.releaseBuffer( inputbuffer );
                           inputbuffer = null;
                      // Glassfish-Implementierung
                    if ( tmpKey != null )
                        tmpKey.cancel();
                    if ( readSelector != null)
                        // Bug 6403933
                         try
                            readSelector.selectNow();
                         catch (IOException ex)
                        SelectorFactory.returnSelector( readSelector );
            return readedChars;
        }Thanks for your time.

    I've commented on that blog before. It is rubbish:
    - what does 'overloading the main Selector' actually mean? if anything?
    - 'Although this not clearly stated inside the NIO API documentation': The API documentation doesn't say anything about which Selector you should register channels with. Why would it? Register it with any Selector you like ...
    - 'the cost of maintaining multiple Selectors can reduce scalability instead of improving it' Exactly. So what is the point again?
    - 'wrapping a ByteBuffer inside a ByteBufferInputStream:' Code is rubbish and redundant. java.nio.channels.Channels has methods for this.
    There is no a priori advantage to using multiple Selectors and threads unless you have multiple CPUs. And even then not much, as non-blocking reads and writes don't consume significant amounts of CPU. It's the processing of the data once you've got it that takes the CPU, and that should be done in a separate thread.
    So I would re-evaluate your strategy. I suspect you're getting the channel registered with more than one Selector at a time. Implement it the simple way first then see if you really have a problem with 'overloading the main Selector' ...

  • Why do I get IOException on nio read from channel before all data is read?

    I am working on an NIO based http client library but I've noticed two problems.
    #1: I have been testing against an http server that has authentication turned on. Hence, any request that comes its way will respond with a '401 Authentication Required' response. In the case of a POST, I've noticed that this particular http server does not wait for the body to arrive before responding. As soon as it gets the headers, it dumps the 401 response onto the channel and closes the connection. My library then gets an IOException on the next write to the channel even though I've received write interest event. (I'm using non blocking mode)
    Whether I get the exception depends on timing. Sometimes, my writes work and the exception is averted. Sometimes not. The longer I delay since the time I get the write interest event, the more likely it is the exception will occur.
    Now, in this situation, I really think it's the http server that is violating the http protocol. I give a valid content length that is not zero but it does not wait for me to finish my request. The moment I write the last empty line of the header section, it responds and closes the channel. Even though I don't think this is correct, my library has to deal with it. So in this situation, I've decided my library will abandon the write phase and move on to reading the response.
    NOTE: In the majority of cases, a client would have already authenticated by landing on some page that could produce a POST in the first place. However, for technical reasons I can't mention here, I must support the case that the very first (unathenticated) request to the server is a POST.
    2) After #1 above occurs, reading from the channel will also throw an IOException but only on Windows. Sometimes I get the headers only, sometimes the whole document, sometimes nothing. Again, the longer I delay reading (since the time I get the read interest event) the more likely it is the exception will be thrown. This NEVER happens on Linux. I always get the full response on Linux after the #1 happens even if I put long delays between reads.
    I can understand #1 happening but #2 should not. I can always see the complete response data on the wire using a network protocol analyser. The data is there every time but my library doesn't always get it.
    In situation 2, there is nothing I can do. If I don't receive the data, I have to respond with an error even though the request was successful.
    I have stripped down my library to the bare essentials and can reproduce the problem in a self-contained environment every time.
    Any ideas why the discrepency between Windows/Linux? Does this seem right?

    I read through the section you mentioned. I realize the connection may be dropped at any time. Handling this is no problem. It is reported as an exception to the client. However, this situation is different. I still see no provision that allows a server to respond to a half written request. A request is defined to include an optional message body (Section 5). The client dictates whether it is optional, not the server. Furthermore, section 6 clearly states "After receiving and interpreting a request message, a server responds with an HTTP response message.". To me, this implies the server must wait for the entire request before responding even if its a waste of time. This particular server is attempting to short circuit what I see is the required request/response cycle. In doing so, it is causing me some pain in trying to deliver its response since it seems on windows this interferes with my ability to read it.
    The simple answer to this is to process reads before writes, i.e. OP_READ before OP_WRITE. I tried this as well. Originally, I was not even registering READ interest while I was writing my request. (I saw no reason to. I don't want to give my client a response while they are writing their request.) But even when I do register READ interest while I'm writing (and process read events before write), the read event still produces no data and no eof (-1) indication on the read. The discrepency between linux and windows is bothering me. No matter what I do, I can't deliver the response even though its written to the channel by my peer. I think I will supply some code and see if anyone can get it to work on windows.Edited by: r2rossi on Sep 24, 2008 10:42 AMEdited by: r2rossi on Sep 24, 2008 10:43 AM
    Edited by: r2rossi on Sep 24, 2008 10:45 AM
    Edited by: r2rossi on Sep 24, 2008 10:46 AM

  • Can't open Pages 05 saved in Dropbox on new Pages iPad app and visa-versa

    Updated to the new Pages 05 on all my devices (macbook, iPad, iPhone). Problem now is that I want to save documents into Dropbox. Works fine when saving a file from my macbook to dropbox, and then opening it on my macbook again. But whenever I create a document on either the macbook or iPad and save it into dropbox, it will not allow me to open it on the other device. I am very uneducated in this area, especially the new 'packages' that files are put in now, I'm not understanding how this all works and why I cannot open a pages file created on my macbook in a pages app on my iPad and visa-versa.

    I've just encountered this problem trying to work away from my main mac on pages and numbers documents, through my iPad - this was a great feature through dropbox -  now it's just another frustration - Apple why are you taking us backwards?  To resolve it I have to spend time moving all my documents to iCloud which is just making what was a brilliantly simple file sharing option, now very complicated.

  • Problematic frame: # J java.nio.MappedByteBuffer.load()

    Helo all...
    I'm getting an error when generating a PDF using BIRT Framework in Eclipse. Nothing fancy, just compiling a simple report to pdf.
    The problem is, the JVM crashes with the following error:
    # A fatal error has been detected by the Java Runtime Environment:
    # EXCEPTION_IN_PAGE_ERROR (0xc0000006) at pc=0x0190f0be, pid=5848, tid=2392
    # JRE version: 7.0_09-b05
    # Java VM: Java HotSpot(TM) Client VM (23.5-b02 mixed mode, sharing windows-x86 )
    **# Problematic frame:
    # J java.nio.MappedByteBuffer.load()Ljava/nio/MappedByteBuffer;**
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
    # An error report file with more information is saved as:
    # C:\Users\luis\Desktop\teste\birt\hs_err_pid5848.log
    # If you would like to submit a bug report, please visit:
    # http://bugreport.sun.com/bugreport/crash.jsp
    I already tried:
    1. Run the program in another computers - it worked
    2. Reinstall Java on the computer - It did nothing
    3. I check the integrity of the disk C: - Nothing
    I already spent two days trying to fix this and I don't have any progress. I can't find a solution on the web either.
    Thanks in advance

    Thanks for the help.
    But it can not be related to BIRT because it works in every other computer that I tried so far. There is only one computer that not works properly.
    If it were BIRT's fault, it wouldn't work in any computer.
    Thanks again

Maybe you are looking for

  • Setting Up Data Source In Reporting Services

    I know how to set up a data source using SQL Server Authentication by filling in this part: However, when I try to use Windows Authentication here, it says "Log on failed.  Ensure the user name and password are correct". When I use my Windows Authent

  • Release Microphone on device

    After using the mic in an AIR for Android app, I get audio errors in other programs such as the browser. If I try to use speech recognition for example, it throws me an error. If I close the AIR app, then all is good again. I am assuming the mic is s

  • UsageTracker Folder in preventing C7-00 software ...

    Have attempted to upgrade my C7-00 from Symbian Anna 024.001 to Nokia Belle on Nokia Suite 3.8.30 without any success.  When Nokia Suite backs up the phone, a folder called UsageTracker, found on all three memories (phone, mass & memory card) prevent

  • IP - Trying to better understand FOREACH IN REFDATA

    Hi, We would like to implement a copy function to copy actual data to plan (multi-provider). I know I'll need to use FOREACH IN REFDATA but I would like to better understand it. If you use FOREACH IN REFDATA, will this loop over your reference data w

  • My lovely MacBook has died...trying to back up!

    I am trying to back up my mac pro from my time capsule it's stating a 40 hr backup time is this normal?? It's via wifi.... Anyone know average timing?? Cheers peeps,