"Hacking" the Object streams...

Hello everyone,
Here's what I'm trying to do:
I have to transmit Object graphs over a message oriented networking framework at a rate of about 100 messages per second. Since i can't maintain constant data streams between the peers the first thing that comes in mind is to create an ObjectOutputStream to "fill in" each message and on the far side an ObjectInputStream to read the contents of each message. This aproach however seems to be too coastly for the goals I have to meet. So the first questin I have is:
How coastly realy it is to create 200 Object streams per second?
And the second question I got is:
Is there a way to safely reuse only a single pair of Object streams?
I tried to run the object streams over my custom implenentations of OutputStream and InputStream that allow me to write the object, flush the object stream, obtain the byte[] block that was produced, fill it in a message and transmit it. On the far side I respectively "slip" this byte[] block "beneath" the ObjectInputStream and reconstruct the Object. This aproach worked for simple data structures and yelded the desired high throughput. With complex structured however this yelds horrific StreamCorruptedExceptions :(

I think creating 200 streams per second can't be fast. But a stream can send as much data as you want to push thru it (underlying connection mechanism restrictions apply... e.g. TCP over the internet is not as fast as TCP over a LAN or within the same PC).
If you're large objects are not containing all serializable contents, that could cause problems, I think. Sticking a non-serializable object inside a serializable one doesn't make the non-serializable one serializable.

Similar Messages

  • How to Edit/Save PDF without Object Stream Compression?

    Hi,
    Whenever I am removing/replacing a page in the PDF file, "Object Stream Compression" applied automatically. But in the original PDF there is no "Object Stream Compression" initially.
    I can remove this "Object Stream Compression" using the option "PDF OPTIMIZER->Cleanup->Remove->Compression" manually, but I want to remove/replace a page in the PDF file without "Page Has Object Stream Compression".
    Preflight Report for the Original PDF
    Preflight Report for the Edited PDF (One Page Removed)
    Could you advise anyone, how to solve the above mentioned issue?
    I hope your favorable response from the Acrobat experts.
    Regards,
    TSR

    Thanks for the reply.
    I just want to remind you that I don't use any other workflow to retain/remove the "object stream compression".
    My question is "object stream compression" was not present in the original PDF  but after removing a page (Ex: Back cover) "object stream compression" applied automatically. Why?
    Note: I am using "Acrobat X pro" to remove a page (Ex: Back cover) from the original PDF and not using any other PDF tools for the above.
    Now i hope that you will understand the actual issue.
    Regards,
    Raja. S

  • Socket + GZip Stream + Object Stream problem

    Hello,
    I've been having a problem with my threaded networked application. I want to send GZipped Objects over a socket, but the ObjectInputStream constructor blocks. I understand that it is waiting for header information from the corresponding ObjectOutputStream. I am sure that the socket connection has been established, and the ObjectOutputStream is constructed before the ObjectInputStream on the other end. The header information never seems to get to the other end.
    If I remove the Gzip filter stream, everything works great. I'm thinking that the Gzip stream is buffering the 4 bytes of header info, waiting for more data before actually compressing anything. I've tried flushing everything, to no help. I've tried finish()ing the Gzip stream, but that means I can't send my object payload. I've checked the buffers of all the stream objects and see the Object Stream's header in its buffer, but never seems to get into the GZIPOutputStream's buffer.
    Has anyone successfully used Object Stream > GZIP Stream > Socket Stream before?
    I'm not interested in examples that use file streams, since I get the impression that Gzip works fine with those (and maybe even designed only for those, not for sockets).
    Thanks for any help.
    Dave C

    Thanks. I see what I'm doing differently now. I was trying to send multiple objects over the gzip stream, not 1 at a time, finish(), and construct a new Gzip and Object output stream.
    Seems to work with a ByteArrayOutput/InputStream, now to try with a socket..

  • Object Replacement with the existing one int the Serialization Stream..

    when u readObject() from serialization its fine,but if u change any of its fields or value of variable and than store it back,it append new object to the Serialization Stream.
    I want to store that object back to its original position in the stream.
    please help me in this regard..

    you need to use (override) the readResolve() and writeReplace() methods in the classes that you'll be switching their instances/values/etc. with something else.
    Look at the javadocs for the java.io.Serializable interface.
    Another option is to subclass the ObjectInputStream and override the resolveObject method. (see java.io.ObjectInputStream). You'll probably also have to subclass ObjectOutputStream and override the writeObjectOverride method.
    You really only need to use one of these mechanisms, not both.
    - Andrew

  • PowerPivot 2012 Error: BaseWorkbook.CacheStream: Failed to read from stream. Error was: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent'

    Hi, I have setup PowerPivot 2012 for SharePoint, but when I access'PowerPivot Management Dashboard' in Central Admin I get error message 'An error has occured'
    Below is the error in the ULS,
    Background file fill operation caught exception: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b', schema 'dbo'.  
     at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)    
     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)    
     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)    
     at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()    
     at System.Data.SqlClient.SqlDataReader.get_MetaData()    
     at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)    
     at System.Data.SqlClient.SqlCommand.CompleteAsyncExecuteReader()    
     at System.Data.SqlClient.SqlCommand.InternalEndExecuteReader(IAsyncResult asyncResult, String endMethod)    
     at System.Data.SqlClient.SqlCommand.EndExecuteReader(IAsyncResult asyncResult)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.AsyncSqlSession.EndExecuteReader(IAsyncResult ar)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPBackgroundSqlFileFiller.OnReadComplete(IAsyncResult result)
    BaseWorkbook.CacheStream: Failed to read from stream. Error was: System.Data.SqlClient.SqlException: The EXECUTE permission was denied on the object 'proc_FetchChunkFromDocStreams', database 'SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b',
    schema 'dbo'.    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPBackgroundFileFiller.Fill()    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBuffer.WaitForIntervalFill(SPInterval i)    
     at Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedMemoryStream.Read(Byte[] array, Int32 offset, Int32 count)    
     at Microsoft.SharePoint.SPFileStream.Read(Byte[] buffer, Int32 offset, Int32 count)    
     at Microsoft.Office.Excel.Server.CalculationServer.BaseWorkbookManager.CacheStream(CachedFile cachedFile, FileLoader loader)
    Regards,
    Ayaz
    SharePoint Architect

    Hey Ayaz,
    I do had the same error message when I click on "PowerPivot Management Dashboard". After few research I resolved this issue.
    You need to provide the dbReader and dbWriter permission to powerpivot app pool account at "SharePoint_AdminContent_ca021d58-ef1f-4f30-9aeb-6f24db24862b"
    Have a great day :-)
    Santosh sethi

  • Can we capture changes made to the objects other than tables using streams

    Hello All,
    I have setup a schema level streams replication using local capture process. I can capture all the DML changes on tables but have some issues capturing DDL. Even though streams are used for sharing data at different or within a database I was wondering if we can replicate the changes made to the objects like views, procedures, functions and triggers at the source database. I am not able to replicate the changes made to the views in my setup.
    Also, when I do a "select source_database,source_object_type,instantiation_scn from dba_apply_instantiated_objects" under the column 'object_type' I just see the TABLE in all the rows selected.
    Thanks,
    Sunny boy

    Hello
    This could be a problem with your rules configured with capture,propagation or apply. Or might be a problem with your instantiation.
    You can replicate Functions, Views, Procedure, Triggers etc using Streams Schema level replication or by configuring the rules.
    Please note that the objects like Functions, Views, Procedure, Triggers etc will not appear in the DBA_APPLY_INSTANTIATED_OBJECTS view. The reason is because you do a schema level instantiation only the INSTANTIATION_SCN in DBA_APPLY_INSTANTIATED_SCHEMAS is accounted for these objects. At the same time tables would get recursively instantiated and you would see an entry in DBA_APPLY_INSTANTIATED_OBJECTS.
    It works fine for me. Please see the below from my database (database is 10.2.0.3):
    on capture site_
    SQL> connect strmadmin/strmadmin
    Connected.
    SQL> select capture_name,rule_set_name,status from dba_capture;
    CAPTURE_NAME RULE_SET_NAME STATUS
    STREAMS_CAPTURE RULESET$_33 ENABLED
    SQL> select rule_name from dba_rule_set_rules where rule_set_name='RULESET$_33';
    RULE_NAME
    TEST41
    TEST40
    SQL> set long 100000
    SQL> select rule_condition from dba_rules where rule_name='TEST41';
    RULE_CONDITION
    ((:ddl.get_object_owner() = 'TEST' or :ddl.get_base_table_owner() = 'TEST') and
    :ddl.is_null_tag() = 'Y' and :ddl.get_source_database_name() = 'SOURCE.WORLD')
    SQL> select rule_condition from dba_rules where rule_name='TEST40';
    RULE_CONDITION
    ((:dml.get_object_owner() = 'TEST') and :dml.is_null_tag() = 'Y' and :dml.get_so
    urce_database_name() = 'SOURCE.WORLD')
    SQL> select * from global_name;
    GLOBAL_NAME
    SOURCE.WORLD
    SQL> conn test/test
    Connected.
    SQL> select object_name,object_type,status from user_objects;
    OBJECT_NAME OBJECT_TYPE STATUS
    TEST_NEW_TABLE TABLE VALID
    TEST_VIEW VIEW VALID
    PRC1 PROCEDURE VALID
    TRG1 TRIGGER VALID
    FUN1 FUNCTION VALID
    5 rows selected.
    on apply site_
    SQL> connect strmadmin/strmadmin
    Connected.
    SQL> col SOURCE_DATABASE for a22
    SQL> select source_database,source_object_owner,source_object_name,source_object_type,instantiation_scn
    2 from dba_apply_instantiated_objects;
    SOURCE_DATABASE SOURCE_OBJ SOURCE_OBJECT_NAME SOURCE_OBJE INSTANTIATION_SCN
    SOURCE.WORLD TEST TEST_NEW_TABLE TABLE 9886497863438
    SQL> select SOURCE_DATABASE,SOURCE_SCHEMA,INSTANTIATION_SCN from
    2 dba_apply_instantiated_schemas;
    SOURCE_DATABASE SOURCE_SCHEMA INSTANTIATION_SCN
    SOURCE.WORLD TEST 9886497863438
    SQL> select * from global_name;
    GLOBAL_NAME
    TARGET.WORLD
    SQL> conn test/test
    Connected.
    SQL> select object_name,object_type,status from user_objects;
    OBJECT_NAME OBJECT_TYPE STATUS
    TEST_VIEW VIEW VALID
    PRC1 PROCEDURE VALID
    TRG1 TRIGGER VALID
    FUN1 FUNCTION VALID
    TEST_NEW_TABLE TABLE VALID
    5 rows selected.
    These Functions, Views, Procedure, Trigger are created on the source and got replicated automatically to the target site TARGET.WORLD. And note that none of these objects are appearing in DBA_APPLY_INSTANTIATED_OBJECTS view.
    I have used the above given rules for capture. For propagation I dont have a ruleset itself and for apply I have same rules as of the capture rules.
    Please verify your environment and let me know if you need further help.
    Thanks,
    Rijesh

  • File I/O Using Object Streams

    My program is supposed to be a Driving instructor program that allows someone to enter a Name and Lesson Number, and it will pull up the Date, and Comments that the lesson took place. The information is saved in a file with the person's name, and saved as an array. We are required to use Object Streams for the file i/o. The only part of the program that I don't have working is the actual file i/o. The large commented section that I have in the datamanager class is the notes from the professor on the board and I haven't removed them yet. There are 4 classes for this file.
    The main class that creates the program and calls the other classes.
    import java.awt.*;
    import javax.swing.*;
    public class main {
    /** Creates a new instance of main */
    public main() {
    * @param args the command line arguments
    public static void main(String[] args)
    guiLayout labelFrame = new guiLayout(); // creates LabelFrame
    labelFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
    labelFrame.setSize(600, 200);
    labelFrame.setVisible(true);
    } The second class is the GUI class and event handler class.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    public class guiLayout extends JFrame{
        private JPanel centertop;
        private JPanel centermiddle;
        private JPanel centerbottom;
        private JLabel dateLabel;
        private JLabel nameLabel;
        private JLabel lessonLabel;
        private JLabel commentsLabel;
        private JTextArea DateTextArea;
        private JTextArea NameTextArea;
        private JTextArea LessonTextArea;
        private JTextArea CommentsTextArea;
        private JButton Save;
        private JButton Retrieve;
        private String tempDay[];
        private DataManager DMO;
        /** Creates a new instance of guiLayout */
        public guiLayout()
            super("Drive Application");
            setLayout(new FlowLayout());
            dateLabel = new JLabel("Date (mm/dd/yy)");
            nameLabel = new JLabel("Name");
            lessonLabel = new JLabel("Lesson (1-10)");
            commentsLabel = new JLabel("Comments");
            DateTextArea = new JTextArea(1, 7);
            NameTextArea = new JTextArea(1, 15);
            LessonTextArea = new JTextArea(1, 2);
            CommentsTextArea = new JTextArea(6, 30);
            Save = new JButton( "Save");
            Retrieve = new JButton( "Retrieve");
            //insert into GUI
            //TOP
            centertop = new JPanel();
            centertop.add(nameLabel);
            centertop.add(NameTextArea);
            centertop.add(lessonLabel);
            centertop.add(LessonTextArea);
            centertop.add(dateLabel);
            centertop.add(DateTextArea);
            centertop.setLayout(new GridLayout(6,1));
            add(centertop, BorderLayout.NORTH);
            centermiddle = new JPanel();
            centermiddle.setLayout(new GridLayout(1,1));
            centermiddle.add(CommentsTextArea);
            add(centermiddle, BorderLayout.CENTER);
            centerbottom = new JPanel();
            centerbottom.setLayout(new GridLayout(1,3));
            centerbottom.add (Save);
            centerbottom.add(Retrieve);
            add(centerbottom, BorderLayout.SOUTH);
            ButtonHandler handler = new ButtonHandler();
            Save.addActionListener( handler);
            Retrieve.addActionListener(handler);
        private class ButtonHandler implements ActionListener
            public void actionPerformed(ActionEvent event)
                String Namein = NameTextArea.getText();
                String Datein = DateTextArea.getText();
                String Commentsin = CommentsTextArea.getText();
                int Lessonin = Integer.parseInt(LessonTextArea.getText());
                if(event.getSource()==Save)
                   DMO.Save(Namein, Datein, Commentsin, Lessonin);
                if(event.getSource()==Retrieve)
                    if(Lessonin >= 1 && Lessonin <= 10)
                       LessonRecord r = (DMO.Retrieve(Namein, Lessonin));
                    else
                        String errormess = "Lesson Number must be between 1 and 10!";
                        CommentsTextArea.setText(errormess);
    }The third class is the DataManager class which handles the actual file i/o.
    import java.io.*;
    import java.util.*;
    public class DataManager implements Serializable
        //private String Path = "P:\\D00766703\\CET431\\Assign5";
        private String Path = "C:\\Java";
        FileInputStream fin;
        FileOutputStream fout;
        ObjectInputStream oin;
        ObjectOutputStream oout;
        public String Retrieve(String name, int lesson)
            String itemFile = Path + name + ".ser";
            File f = new File(itemFile);
            if (f.exists() == true)
                try
                    if(fin == null)
                        fin = new FileInputStream(itemFile);
                        oin = new ObjectInputStream(fin);
                    LessonRecord r[] = oin.readObject();
                    if(fin.available() == 0)
                        oout.close();
                        fout.close();
                        return r[lesson - 1];
                catch(IOException ioe)
                    System.out.print(ioe);
            else
                LessonRecord LR = new LessonRecord();
                LR.date = " ";
                LR.comment = "File Not Found";
                return LR;
        /*create file object for Path\\Name
         *if file exists
         *  create fileinputstream
         *  create objectinputstream - oin
         *  read array of lesson records
         *  LessonRecord |r[] = oin.readObject();    need cast to array here
         *  close object input stream and file input stream
         *  return |r[lesson - 1];
         *else file does NOT EXIST
         *  LessonRecord LR = new LessonRecord();
         *  LR.date = " ";
         *  LR.comment = error message;
         *  return LR;
        public void Save(String name, String date, String comment, int lesson)
            String itemFile = Path + name + ".ser";
            File f = new File(itemFile);
            LessonRecord |r[];
            if (f.exists() == true)
                try
                    fin = new FileInputStream(itemFile);
                    oin = new ObjectInputStream(fin);
                    LessonRecord r[] = oin.readObject();
                catch(IOException ioe)
                    System.out.print(ioe);
            else
                r = new LessonRecord[10];
            r[lesson - 1] = new LessonRecord(date, comment);
            fout = new FileOutputStream(itemFile, true);
            oout = new ObjectOutputStream(fout);
            oout.write(r);
            oout.close();
            fout.close();
        /*create file object for Path\\Name
         *LessonRecord |r[];
         *if file exists
         *  create fileinputstream
         *  create objectinputstream - oin
         *  read array of lesson records
         *  LessonRecord |r[] = oin.readObject();    need cast to array here
         *  close object input stream and file input stream
         *else
         *  |r = new LessonRecord[10];
         *|r[lesson - 1] = new LessonRecord(date, comment);
         *createfileoutputstream(BaseDir\\Name);
         *createobjectoutputstream - oout
         *oout.write(|r);
         *closeobjectstream
         *closefilestream
    }And the fourth class is the LessonRecord class which is serializable and has the date and comments variables.
    import java.io.Serializable;
    public class LessonRecord implements Serializable
        public String Date;
        public String Comment;
        /** Creates a new instance of LessonRecord */
        public LessonRecord()
            Date = "";
            Comment = "";
        public LessonRecord(String Datein, String Commentin)
            Date = Datein;
            Comment = Commentin;
    }I could have sworn that the professor said to make it |r for the account records variable names, but I always get errors when I do that, and I need to know how to cast to an array too.

    hi Friend,
    I have made some modification to your code. and try this...I think it will help you...
    /*guiLayout.java*/
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    public class guiLayout extends JFrame{
        private JPanel centertop;
        private JPanel centermiddle;
        private JPanel centerbottom;
        private JLabel dateLabel;
        private JLabel nameLabel;
        private JLabel lessonLabel;
        private JLabel commentsLabel;
        private JTextArea DateTextArea;
        private JTextArea NameTextArea;
        private JTextArea LessonTextArea;
        private JTextArea CommentsTextArea;
        private JButton Save;
        private JButton Retrieve;
        private String tempDay[];
        private DataManager DMO;
        /** Creates a new instance of guiLayout */
        public guiLayout()
            super("Drive Application");
            DMO=new DataManager();
            setLayout(new FlowLayout());
            dateLabel = new JLabel("Date (mm/dd/yy)");
            nameLabel = new JLabel("Name");
            lessonLabel = new JLabel("Lesson (1-10)");
            commentsLabel = new JLabel("Comments");
            DateTextArea = new JTextArea(1, 7);
            NameTextArea = new JTextArea(1, 15);
            LessonTextArea = new JTextArea(1, 2);
            CommentsTextArea = new JTextArea(6, 30);
            Save = new JButton( "Save");
            Retrieve = new JButton( "Retrieve");
            //insert into GUI
            //TOP
            centertop = new JPanel();
            centertop.add(nameLabel);
            centertop.add(NameTextArea);
            centertop.add(lessonLabel);
            centertop.add(LessonTextArea);
            centertop.add(dateLabel);
            centertop.add(DateTextArea);
            centertop.setLayout(new GridLayout(6,1));
            add(centertop, BorderLayout.NORTH);
            centermiddle = new JPanel();
            centermiddle.setLayout(new GridLayout(1,1));
            centermiddle.add(CommentsTextArea);
            add(centermiddle, BorderLayout.CENTER);
            centerbottom = new JPanel();
            centerbottom.setLayout(new GridLayout(1,3));
            centerbottom.add (Save);
            centerbottom.add(Retrieve);
            add(centerbottom, BorderLayout.SOUTH);
            ButtonHandler handler = new ButtonHandler();
            Save.addActionListener( handler);
            Retrieve.addActionListener(handler);
        private class ButtonHandler implements ActionListener
            public void actionPerformed(ActionEvent event)
                String Namein = NameTextArea.getText();
                int Lessonin = Integer.parseInt(LessonTextArea.getText());
                if(event.getSource()==Save)
                    String Datein = DateTextArea.getText();
                     String Commentsin = CommentsTextArea.getText();
                   DMO.Save(Namein, Datein, Commentsin, Lessonin);
                if(event.getSource()==Retrieve)
                    if(Lessonin >= 1 && Lessonin <= 10)
                       LessonRecord r = (DMO.Retrieve(Namein, Lessonin));
                       System.out.println("Retrieve:"+ r.Comment+":"+r.Date);
                    else
                        String errormess = "Lesson Number must be between 1 and 10!";
                        CommentsTextArea.setText(errormess);
    /*DataManager.java*/
    import java.io.*;
    import java.util.*;
    public class DataManager implements Serializable
        //private String Path = "P:\\D00766703\\CET431\\Assign5";
        private String Path = "C:/Java";
        FileInputStream fin;
        FileOutputStream fout;
        ObjectInputStream oin;
        ObjectOutputStream oout;
        public LessonRecord Retrieve(String name, int lesson)
            String itemFile = Path + name + ".ser";
            File f = new File(itemFile);
            LessonRecord[] r=null;
            if (f.exists() == true)
                try
                    if(fin == null)
                        fin = new FileInputStream(itemFile);
                        oin = new ObjectInputStream(fin);
                    r= (LessonRecord[])oin.readObject();
                    System.out.println(r[lesson-1].Comment+":"+r[lesson-1].Date);
                catch(IOException ioe)
                    System.out.print(ioe);
                  catch(ClassNotFoundException c){
                    c.printStackTrace();
                finally
                    try {
                        if(fin!=null)fin.close();
                        if(oin!=null)oin.close();
                    } catch (IOException ex) {
                        ex.printStackTrace();
            else
                LessonRecord LR = new LessonRecord();
                LR.Date = " ";
                LR.Comment = "File Not Found";
                return LR;
        /*create file object for Path\\Name
         *if file exists
         *  create fileinputstream
         *  create objectinputstream - oin
         *  read array of lesson records
         *  LessonRecord |r[] = oin.readObject();    need cast to array here
         *  close object input stream and file input stream
         *  return |r[lesson - 1];
         *else file does NOT EXIST
         *  LessonRecord LR = new LessonRecord();
         *  LR.date = " ";
         *  LR.comment = error message;
         *  return LR;
      return r[lesson - 1];
        public void Save(String name, String date, String comment, int lesson)
            String itemFile = Path + name + ".ser";
            File f = new File(itemFile);
            LessonRecord r[]=new LessonRecord[10];
            if (f.exists() == true)
                try
                    fin = new FileInputStream(itemFile);
                    oin = new ObjectInputStream(fin);
                     r = (LessonRecord[])oin.readObject();
                catch(IOException ioe)
                    System.out.print(ioe);
                catch(ClassNotFoundException c){
                    c.printStackTrace();
                finally
                    try {
                        if(fin!=null)fin.close();
                        if(oin!=null)oin.close();
                    } catch (IOException ex) {
                        ex.printStackTrace();
            else
                r = new LessonRecord[10];
       try
            r[lesson - 1] = new LessonRecord(date, comment);
            fout = new FileOutputStream(itemFile);
            oout = new ObjectOutputStream(fout);
            oout.writeObject(r);
            oout.flush();
       catch(IOException ioe)
            finally
                try {
                    if(fout!=null)fout.close();
                    if(oout!=null)oout.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
        /*create file object for Path\\Name
         *LessonRecord |r[];
         *if file exists
         *  create fileinputstream
         *  create objectinputstream - oin
         *  read array of lesson records
         *  LessonRecord |r[] = oin.readObject();    need cast to array here
         *  close object input stream and file input stream
         *else
         *  |r = new LessonRecord[10];
         *|r[lesson - 1] = new LessonRecord(date, comment);
         *createfileoutputstream(BaseDir\\Name);
         *createobjectoutputstream - oout
         *oout.write(|r);
         *closeobjectstream
         *closefilestream
    }main.java and LessonRecord.java does not have any changes so you use the old code....
    Thanks
    Edited by: rajaram on Sep 28, 2007 1:24 PM

  • Wsus Sync Failed. WebException: The underlying connection was closed: An unexpected error occurred on a send. --- System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.

    Hi I have installed wsus 3 sp2 on a win 2008 R2 Sp1
    before the installation , I have updated the windows
    I can open easily browse internet , but when I try to configure synchronization .but it fails.
    No firewall , no proxy ............. I am behind a nat.
    Wsus version is 3.2.7600.256.
    I have searched and searched .....
    Can any body help me
    WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
    at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
       at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
       at Microsoft.UpdateServices.ServerSync.ServerSyncCompressionProxy.GetWebResponse(WebRequest webRequest)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       at Microsoft.UpdateServices.ServerSyncWebServices.ServerSync.ServerSyncProxy.GetAuthConfig()
       at Microsoft.UpdateServices.ServerSync.ServerSyncLib.InternetGetServerAuthConfig(ServerSyncProxy proxy, WebServiceCommunicationHelper webServiceHelper)
       at Microsoft.UpdateServices.ServerSync.ServerSyncLib.Authenticate(AuthorizationManager authorizationManager, Boolean checkExpiration, ServerSyncProxy proxy, Cookie cookie, WebServiceCommunicationHelper webServiceHelper)
       at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.SyncConfigUpdatesFromUSS()
       at Microsoft.UpdateServices.Serve

    Hi
    yes . it is alloweded.
    Nat rule permits any ip traffic . No problem with https...
    also my windows is fully updated.
    here is my netstat -an , maybe usefull.
     TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
     TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
     TCP    0.0.0.0:8530           0.0.0.0:0              LISTENING
     TCP    0.0.0.0:8531           0.0.0.0:0              LISTENING
     TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING
     TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING
     TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING
     TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING
     TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING
     TCP    0.0.0.0:49156          0.0.0.0:0              LISTENING
     TCP    --------------------:139       0.0.0.0:0              LISTENING
     TCP    --------------------:8530      172.16.2.201:53317     ESTABLISHED
     TCP    --------------------:49362     23.65.244.185:443      ESTABLISHED
     TCP    --------------------:49363     23.65.244.185:443      ESTABLISHED
     TCP    --------------------:49367     23.65.244.185:443      ESTABLISHED
     TCP    --------------------:49377     23.65.244.185:443      ESTABLISHED
     TCP    --------------------:49414     131.253.34.141:443     ESTABLISHED
     TCP    --------------------:49416     216.239.32.20:80       ESTABLISHED
     TCP    --------------------:49417     216.239.32.20:80       ESTABLISHED
     TCP    --------------------:49418     173.194.70.113:80      ESTABLISHED
     TCP    --------------------:49419     173.194.70.113:80      ESTABLISHED
     TCP    --------------------:49420     65.52.103.78:80        ESTABLISHED
     TCP    --------------------:49421     65.52.103.78:80        ESTABLISHED
     TCP    --------------------:49424     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49425     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49426     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49427     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49428     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49429     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49430     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49431     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49432     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49433     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49434     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49435     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49436     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49437     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49438     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49439     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49440     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49441     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49442     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49443     88.221.93.54:80        ESTABLISHED
     TCP    --------------------:49444     88.221.93.54:80        ESTABLISHED
     TCP    --------------------:49445     88.221.93.63:80        ESTABLISHED
     TCP    --------------------:49446     88.221.93.63:80        ESTABLISHED
     TCP    --------------------:49447     88.221.93.63:80        ESTABLISHED
     TCP    --------------------:49448     88.221.93.63:80        ESTABLISHED
     TCP    --------------------:49449     88.221.93.63:80        ESTABLISHED
     TCP    --------------------:49450     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49451     88.221.93.31:80        ESTABLISHED
     TCP    --------------------:49453     88.221.93.30:80        ESTABLISHED
     TCP    --------------------:49456     65.55.58.184:80        ESTABLISHED
     TCP    --------------------:49457     65.55.58.184:80        ESTABLISHED
     TCP    --------------------:49460     131.253.34.142:80      ESTABLISHED
     TCP    --------------------:49461     131.253.34.142:80      ESTABLISHED
     TCP    --------------------:49462     65.52.103.78:80        ESTABLISHED
     TCP    --------------------:49463     65.52.103.78:80        ESTABLISHED
     TCP    --------------------:49464     63.251.85.33:80        ESTABLISHED
     TCP    --------------------:49466     131.253.40.50:80       ESTABLISHED
     TCP    --------------------:49467     131.253.40.50:80       ESTABLISHED

  • LDAP error 32 no such object   (other LDAP  tool finds the object...)

    While I used a separate LDAP search, I can successfully find a specific uid, with base set to "o=WebAuth"
    Using the JAAS Authentication sample, I get this error:
    javax.enterprise.system.stream.out
    [LDAP
    Complete Message
    error code 32 - No Such Object]
    (It did acknowledge that it was logging in for the user id:xxxxxxx)
         : Logging in userxxxxxxx (details)
    My settings are:
    In login.conf:
    ldapAuth{
    jaasauthentication.MyLdapLoginModule required
    URL= "ldap://sun-ds.sfbay.sun.com:389"
    SEARCHBASE= "o=WebAuth";
    In LdapUserData .java:
              public class LdapUserData implements UserData {
              private static LdapUserData instance = null;
              private String INIT_CTX = "com.sun.jndi.ldap.LdapCtxFactory";
              //You need to put your LDAP Host information here.
              private String LDAP_HOST = "ldap://sun-ds.sfbay.sun.com:389"; //put your LDAP host address here ldap://myhost.com:389
              private String SEARCHBASE_DN = "o=WebAuth"; // e.g. cn=Creator,ou=Groups,dc=myhost,dc=com
              private String MY_FILTER = "uid=*";
    (session bean has the value for private static variable login_config set to �ldapAuth�.)
    Questions:
    - What is wrong with my settings?
    - Is the MY_FILTER setting above ok?
    One more thing:
    when running the test, there was
    this message earlier on (before the message of logging in and LDAP 32) :
    1585      SEVERE      WebModule [JaasAuthentication] failed to deploy and has been disabled: [java.lang.IllegalArgumentEx...
    (details)      javax.enter....system.container.web
    Is that a problem already? But it still went on to process the login?

    Did you check if the dc=NRSP_F
    object exists in the ODM.
    and if that object exists then in the users tab (under the object tab), you can search for the user you were trying to connect.

  • Compress the output stream..

    Hello every body..
    I have aproject that use the java applet to transmit a vedio and audio over the internet network to do a video conference application with other applet at another computer at the network..
    I want to support the application so that the user that enter the conference can select the bandwidth of the internet he/she use and then accordin to choice i control the quality of the stream transmitted..
    So i want any one can help me with any way can be used to reduce the quality( or resolution) of the output stream so the user can be comfortable with the output..
    please any one can help me reply to me as fast as can..
    I there is no method can be used also reply and say this..
    Thanks...

    Hi,
    For audio use GSM codec. It just takes 12kbps of your bandwidth.
    For video, if you need "ok" quality with low bandwidth, use H.263 codec and for good quality, but higher bandwidth use JPEG codec. below are complete functions on how to reduce qualities for both codecs (or at least try to). But before you have to create a video Processor (see AVTransmit3.java and AVReceive3.java examples on the net).
    private void setReducedJPEGQuality(Processor videoProcessor) {
       Control cs[] = videoProcessor.getControls();
       QualityControl qc = null;
       VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
       // Loop through the controls to find the Quality control for
       // the JPEG encoder.
       for (int i = 0; i < cs.length; i++) {
          if (cs[i] instanceof QualityControl && cs[i] instanceof Owned) {
             Object owner = ((Owned)cs).getOwner();
    // Check to see if the owner is a Codec.
    // Then check for the output format.
    if (owner instanceof Codec) {
    Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
    for (int j = 0; j < fmts.length; j++) {                    
    if (fmts[j].matches(jpegFmt)) {               
    qc = (QualityControl)cs[i];          
    qc.setQuality(0.5f);               
    break;
    if (qc != null) {
    break;
    This will reduce your JPEG bandwith to an average of 150kbps, with still a good quality.
               private void setReducedH263Quality(Processor videoProcessor) {
             Control cs[] = videoProcessor.getControls();
              QualityControl qc = null;
              BitRateControl brc = null;
              FrameRateControl frc = null;
              boolean done = false;
              //try with bit rate first
              for (int i = 0; i < cs.length; i++) {
                  if(cs[i] instanceof Owned) {
                      if(cs[i] instanceof BitRateControl) {
                           brc = (BitRateControl)cs;
                   if(brc.getBitRate()>0) {
                        brc.setBitRate(30000);               done = true;
                   brc = null;
              if(done) {
                   return ;
              //then look for quality control
              for (int i = 0; i < cs.length; i++) {
              if(cs[i] instanceof Owned) {
              if(cs[i] instanceof QualityControl) {
                   qc = (QualityControl)cs[i];
                   if(qc.getQuality()>0.0f) {
                        qc.setQuality(0.5f);
                        done = true;
                   qc = null;
              if(done) {
                   return ;
              //if that did not work, try setting frame rate
              for (int i = 0; i < cs.length; i++) {
              if(cs[i] instanceof Owned) {
              if(cs[i] instanceof FrameRateControl) {
                   frc = (FrameRateControl)cs[i];
                   frc.setFrameRate(6.0f);
                   frc = null;
    This will reduce your H.263 codec's bit rate to 80kbps. You cannot set less than that. I tried with many webcams and that's the least I could go.
    Good luck.

  • How to migrate the Objects from 3.1c to BI7

    Hi,
    We are in Functional Upgradation.
    How to Migrate the Objects( Infocubes,DSO,Datasources,Rules...etc...) from 3.1C to BI 7.0
    Please help me to doing this....
    regards,
    anil

    BW Upgrade tasks (BW 3.1C to BI 7.0)
    Prepare Phase:
    Task     How-To     Who
    Review BI 7.0 feature lists     Review BI 7.0 feature lists for possible inclusion in developments.     Basis/BW
    Obtain the BI 7.0 upgrade guide     Download the upgrade guide from http://service.sap.com/inst-guides -> SAP NetWeaver -> Upgrade
         Basis/BW
    Review all upgrade SAP notes     In addition to the upgrade guide, check, download, and review all SAP notes for your upgrade
         BI 7.0 Upgrade notes
         SAP Web Application Server 6.40 upgrade notes
         OS and DB specific upgrade notes
         SAP BW Add-on upgrade notes
    (e.g. SAP SEM, ST-PI, etc)
         Plug-In upgrade SAP notes
         Other notes identified in above notes and/or upgrade guides.
         Basis/BW
    Check DB and OS requirements for the target SAP BW release     Check DB version/patch level and OS version/patch level required for upgrade
         First check the most current information from the SAP BW homepage http://Service.sap.com/BW  -> <SAP BW release> -> Availability
         Additionally, the u201CPlatformsu201D link will take you to the main DB/OS page for BI 7.0 and SAP Web AS 6.40.
         Note: In some cases there are differing requirements for SAP BW 3.0B/SAP BW 3.1 Content and BI 7.0
         Basis
    Check SAP BW Add-on upgrade requirements     Do you have SAP BW add-ons installed that require additional handling (e.g. SAP SEM, Enterprise Portal Plug-in, etc)?
         SAP SEM (SAP BW based components) requires SAP SEM 4.0 which is part of the mySAP ERP 2004 suite.
         WP-PI release must be at 6.00 before the upgrade begins. As mentioned before this add-on is merged with PI_Basis after the upgrade.
         Basis
    Check SAP BW upgrade requirements          Minimum Support Package and kernel levels for upgrade
         SAP BW Frontend requirements for new SAPGUI, SAP BW BEx Frontend and SAP BW Web applications.
         Source system Plug-In requirements     Basis
    Check compatibility requirements with 3rd party software          3rd Party Reporting tools (example: Crystal)
         ETL Tools (example:  Ascential, DataStage, etc)
         Scheduling tools (example. Control-M, Maestro, etc)
         Monitoring tools (example: HP OpenView, Patrol, etc)
         Other OS or DB related tools     Basis
    Check new component requirements for BI 7.0          If SAP BW web reports were developed in SAP BW 2.x, a windows version of IGS 6.40 (Internet Graphics Service) is required for conversion and future rendering of web graphics (i.e. Charts and GIS Maps).
    The IGS chart migration will also be required after the SAP BW web report conversion.
         If you used or activated any SAP BW Web Applications in SAP BW 3.x, or if you have used charts in SAP BW 2.x web reports, you will need a windows version of IGS 6.40 (Internet Graphics Service) to execute the IGS chart migration after the upgrade.
         If ESRI GIS software is in use, a different version of ESRI software maybe required for BI 7.0.  (ArcView 8.2?).
         If you plan to use Information Broadcasting, please review the requirement for additional infrastructure components such as EP, KMC, Workbook pre-calculation service, and Web AS connectivity to your mail servers.
    Detailed information is available in the SAP NetWeaver u201904 master planning guide (http://service.sap.com/instguides  -> SAP NetWeaver).
         Basis
    Test and distribute new SAP BW Frontend
              Install and test the new BI 7.0 Frontend (including the new version of SAPGUI for Windows if applicable).
         A detailed FAQ on the new BI 7.0 Frontend is available on the SAP service marketplace alias BWFAQ (http://service.sap.com/BWFAQ).
         After successful testing, the new SAPGUI for Windows and SAP BW Frontend can be distributed to the BW teams and end users.
         Basis
    Alpha Conversion:
    Ensure that your InfoObject data is consistent from a u201Cconversionu201D perspective (Alpha Converter tool)      Check that you have executed the Alpha Converter tool to check the consistency of your InfoObject definitions and data for InfoObjects that utilize the ALPHA, NUMCV and GJAHR conversion exits.
    Note: The Alpha conversion is not part of the SAP BW upgrade itself, but the upgrade simply checks to ensure you have successfully executed the check tool.
    Transaction RSMDCNVEXIT
    Check the system status:
         u201CAll Characteristics Have Correct Internal Valuesu201D: The Alpha converter has been successful executed. The upgrade preparation can continue.
         u201CNo Check yet/Inconsistent Internal Vales existu201D:
    The Alpha converter check has not been executed.
         u201CCharacteristics have Inconsistent Internal Valuesu201D:
    The Alpha converter tool check has been executed and data problems have been detected. The InfoObject and data must be processed before the upgrade can be started.
         BW
    Upgrade SAP Note updates     Check for newer versions of your SAP notes for the Upgrade.
    Tip: The SAP service marketplace offers an option to subscribe to OSS notes so you can be notified of changes when you log on.
         Basis/BW
    Confirm SAP BW support package, kernel and DB/OS configuration     Analyze current Support Package and DB/OS/Kernel configurations in your SAP BW landscape in relation to the SAP BW 3.x upgrade requirements.
         Apply necessary support packages, kernel patches, and DB and OS patches to meet upgrade requirements
         Basis
    Alignment of SAP BW objects within your SAP BW system landscape     Check and, where required, re-align SAP BW Objects and developments in your SAP BW system landscape (Development, Quality Assurance and Production).
    SAP BW Object differences can impact the quality of testing in the Development and Test environment and can lead to change management issues.
         This check is to minimize risk and ensure productive objects are being tested prior to the Production upgrade.
    Where alignment issues exist and realignment is not possible, alternative testing plans should be devised.
         Basis/BW
    Confirm all developments are deployed.     Ensure that all SAP BW developments are deployed or they are to be re-developed/tested after the upgrade.
         In the DEV system, all SAP BW development transports should be released (i.e. transport created and released) and imported to all downstream systems (i.e. QAS and PRD systems).
    For SAP BW developments not already collected in the transport collector, a decision must be made:
    Deploy the developments or wait until the upgrade has completed to deploy.
    o     Development to be deployed should be collected, released, and imported into the QAS and PRD systems.
    o     Developments that should be deployed after the upgrade should be re-tested/re-developed after the upgrade.
         In the QAS or PRD systems, ensure that all SAP BW development transports have been imported prior to the upgrade.
         BW
    Implement BI 7.0 Business Explorer Frontend     Install, evaluate, test and distribute the new BI 7.0 Business Explorer Frontend.
         Basis/BW
    Pre-upgrade Process:
    Download required BI 7.0 support package Stack for inclusion in the upgrade     Determine the equivalent support package level of the source SAP BW release and the target SAP BW release.
         There is a minimum requirement that you upgrade to at least the equivalent support package level on the target SAP BW release so that you do not lose functionality, corrections, and data.
         It is recommended to upgrade to the latest version of all support packages during the upgrade via the upgradeu2019s support package binding functionality.
         BI 7.0 Support Packages are delivered via SAP NetWeaver u201904 Support Package stacks (SP-Stacks). It is not recommended to partially apply some of the SP-Stacksu2019 individual support packages. You should apply all of the SP-Stacks support packages at once.
    For more information on the SP-Stacks and SAP NetWeaver SP-Stacks, please see the SAP service marketplace alias SP-Stacks (http://service.sap.com/sp-stacks)
         You should also review, download, and bind in support packages for all add-on components that are installed on SAP BW and will be upgraded during the SAP BW upgrade (e.g. SEM-BW, ST-PI, etc)
         Basis
    Apply latest Support Package tool patch     Apply latest SPAM patch before executing PREPARE     Basis
    Validate the SAP BW (ABAP) Data Dictionary and the Database Data Dictionary for consistency     Check Database consistency
         Transaction DB02:
    o     Execute ABAP SAP_UPDATE_DBDIFF and re-execute DB02 check. This gives a truer view of the SAP BW objects in DB02.
    o     Check missing database objects (indices, tables, etc)
    o     Missing indices may identify erred data loads or process problems
    Tip: Missing indices on InfoCubes can be restored by RSRV or ABAP SAP_INFOCUBE_INDEXES_REPAIR
    Note: check for running data loads before executing a repair!
    o     Check DDIC/DB consistency
         Verify database objects and consistency
    (e.g. SAPDBA check for offline data files)
         BW
    Remove unnecessary SAP BW temporary database objects     Delete all SAP BW temporary database objects:
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
         This reduces the numbers of database objects that need to be copied during the upgrade.
         Note: take care not to delete objects that are in use as this will cause queries, compressions, etc to terminate.
         BW
    Validate your SAP BW Objects for correctness prior to your upgrade     Using the SAP BW Analysis Tool (transaction RSRV), perform extensive tests on all important SAP BW Objects to ensure their correctness prior to the upgrade.
    Note: this test should be repeatable so you can re-validate after the upgrade!
         Ensure that any inconsistencies are identified and corrected
         RSRV has a number of extensive tests and if all checks are executed will consume a large amount of time. Multiple tests can be performed in parallel.
         Tip: Some corrections in development can be deployed to other systems via transport in advance of the next upgrade.
         BW
    Ensure DB Statistics are up to date prior to the upgrade          Check DB statistics for all tables.
    Tables without statistics, especially system tables, can seriously impact upgrade runtimes.
         Check DB statistics for missing Indexes for InfoCubes and Aggregates
    o     User transaction RSRV to check      BW
    Check SAP BW Support Package status     Check the status of all support packages (via transaction SPAM)
         Ensure the Support Package queue is empty
         Confirm all applied Support Packages     Basis
    Check all u2018Repairsu2019     Check for unreleased repair transports
         Release all unreleased transports
    In your QAS and PRD system, check if all repair transports have been imported (i.e. systems are aligned)
         Import missing repair transports into down stream systems. This will avoid differing message and/or errors during the upgrade.
         BW
    Check InfoObject status          Check for revised (modified) InfoObjects that have not been activated.
    All InfoObjects should be active or saved (not activate):
    o     Check all inactive InfoObjects:
    Transaction RSD1 (Edit InfoObjects),
    click on u201CAll InfoObjectsu201D radio button and click the u201CDisplayu201D button.
    Modified InfoObjects are denoted by yellow triangles!
    o     Determine if revision should be activated or removed.
         'Reorgu2019 or u2018Repairu2019 all InfoObjects
    This checks and repairs any discrepancies in the InfoObject definition and structures. It is common to have obsolete DDIC and table entries for InfoObjects after multiple upgrades and definition changes. These obsolete entries normally do not effect normal SAP BW operations.
         Transaction RSD1 (Edit InfoObjects), Select u201CExecute Repairu201D or u201CExecute Reorgu201D Use expert mode for selective executions.
         BW
    All ODS data loads must be activated.          Activate all inactivated ODS Object requests.
    All ODS u2018Mu2019 tables must be emptied prior to the upgrade as a new activate process is implemented
    o     Inactivated ODS request can be located via the Admin workbench -> u2018Monitoringu201D button -> u2018ODS Status Overviewu201D
         BW
    All Transfer and Update rules should be active          Check for inactive Update and Transfer Rules
    o     All update rules and transfer rules should be active or deleted.
    o     Look into the table RSUPDINFO for update rules and search for the version "not equal" to "A". Likewise use the table RSTS for Transfer rules/structure.     BW
    All InfoCubes should be active          Check for inactive InfoCubes and Aggregates (Aggregates are InfoCubes too!)
    o     All InfoCubes should be activated or deleted.
    o     Execute ABAP RSUPGRCHECK to locate any inactive InfoCubes. See SAP note 449160.
         BW
    All Web Report objects should be consistent prior the upgrade.          Check the consistency of your SAP BW web objects (web reports, web templates, URLs, roles, etc). All objects should be consistent prior to web object conversion after the upgrade. It is recommended to ensure consistency before the upgrade.
    o     For Original release SAP BW 3.x:
    A SAP BW web reporting objects check can be executed via a new check in RSRV. This is provided via a SAP BW support package.
    Please see SAP note 484519 for details.
         BW
    Backup your system before starting PREPARE     Before execution PREPARE, perform a full database backup (including File system). Ensure you can recover to the point in time before PREPARE was executed.
         Database admin
    Address any instructions/errors generated by PREPARE          Address any issues listed in log files Checks. Log generated by PREPARE.
    o     Repeat PREPARE until all checks are successful.     Basis
    Complete any Logistic V3 data extractions and suspend V3 collection processes          Extract and empty Logistics V3 extractor queues on SAP R/3 source systems.
    o     The V3 extraction delta queues must be emptied prior to the upgrade to avoid any possible data loss. V3 collector jobs should be suspended for the duration of the upgrade.
    They can be rescheduled after re-activation of the source systems upon completion of the upgrade.
         Note: If you perform any data loads after executing PREPARE, re-check the status of all delta queues in SAP BW and the source systems(s).
         BW
    Complete any data mart data extractions and suspend any data mart extractors          Load and Empty all Data mart Delta Queues in SAP BW. (e.g. for all export DataSources)
    o     The SAP BW Service SAPI, which is used for internal and u2018BW to BWu2019 data mart extraction, is upgraded during the SAP BW upgrade. Therefore, the delta queues must be emptied prior to the upgrade to avoid any possibility of data loss.
         Note: If you perform any data loads after executing PREPARE, re-check the status of all delta queues in SAP BW and the source systems(s).
         BW
    Check that your customer defined data class definitions conform to SAP standards          Check all customer created Data classes used by SAP BW Objects (i.e. InfoCubes, ODS Objects, Aggregates, InfoObjects, and PSAs) to ensure they conform to SAP standards.
    o     Check your data class definitions as detailed in SAP Notes 46272 and 500252.
    o     Incorrect data classes could create activation errors during the upgrade.
         BW
    Remove unnecessary SAP BW temporary database objects     Delete all SAP BW temporary database objects:
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
    For more information see SAP note 308533 (2.x) and 449891 (3.x).
         This reduces the numbers of database objects that need to be copied during the upgrade.
         Note: take care not to delete objects that are in use as this will cause queries, compressions, etc to terminate.
         Basis/BW
    Backups!     Before executing the upgrade, ensure that you have a backup strategy in place so you can return to the point where loading was completed and the upgrade started.
    Ensuring you can return to a consistent point in time (without having to handle rollback or repeats of data loads) is key to having a successful fallback plan.
         Database Admin
    Before Execution:
    All SAP BW administration tasks should have ceased          Cease all SAP BW administration tasks such as Object maintenance, query/web template maintenance, data loads, transports, etc at the beginning of the upgrade.
    The Administrators Workbench and the Data Dictionary are locked in the early phases of the upgrade.
         Reminder: Users can execute queries until the time that the upgrade determines that the SAP BW System should be closed*
    - timing depends on the type of upgrade selected
         Basis/Admin
    Remove unnecessary SAP BW temporary database objects     Repeat the deletion of all SAP BW temporary database objects after you have stopped using the SAP BW Admin workbench*
         Execute routine housekeeping ABAP SAP_DROP_TMPTABLES.
    For more information see SAP note 308533 (2.x) and 449891 (3.x).
    - timing depends on the type of upgrade selected
         BW
    Check system parameters     Check OS, DB, and Instance profile parameters.
         Check System Instance parameters for new BI 7.0 specific parameters. See SAP note 192658 for details
         Check for any DB specific parameters for BI 7.0
         Check for any new OS parameters     Basis
    Check Database archiving mode     Turn database archive log mode back on if it was disabled during the upgrade!
         Database Admin
    After Execution:
    Check the systemu2019s installation consistency     Execute Transaction SICK to check installation consistency
         BW
    Check the system logs     Perform a technical systems check.
         Example: Check system and all dispatcher logs (inc. ICM logs)
         Basis
    Apply latest executable binaries     Apply the latest 6.40 Basis Kernel for all executables
         Tip: use the SAP NetWeaver u201904 SP-Stack selection tool to find all binaries. (http://service.sap.com/swdc)
         Basis
    Review BI 7.0 Support Packages for follow-up actions.          Review SAP Notes for all SAP BW Support packages applied during (bound into the upgrade) and applied after the upgrade:
    o      Search for Note with the keyword u201CBWu201D, u201CSAPBWNEWSu201D, and u201C<BW release>u201D
    o     Follow any required instructions identified in the SAP Notes
         Basis
    Apply latest patches          Apply the latest SPAM patch
         Apply any required support packages that were not bound into the upgrade.
         Basis
    Apply additional BI 7.0 Support Packages
    (if required)          SAP recommends that customer remain current on SAP Support Packages.
         Review SAP Notes for all SAP BW Support packages applied in previous task.
    o      Search for Notes with the keyword u201CBWu201D, u201CSAPBWNEWSu201D, and u201C<BW release>u201D
    o     Follow any required instructions identified in the SAP Notes
         Basis
    Resolve any modified SAP delivered Role issues      If SAP delivered Roles were modified, then these modifications may incorrectly appear in the upgrade modification adjustment tool (SPAU).
         Review and implement SAP note 569128 as required     Basis
    Configuring Information Broadcasting EP/KMC Connections
         If you plan to use the EP integration functionality of Information broadcasting (Broadcast to the EPu2019s PCD, Broadcast to KMC, or Broadcast to Collaboration Rooms):
         Ensure the SAP EP is at the same SP-Stack level as your SAP BW system.
         Follow the online help documentation to configure and connect the SAP BW system and the SAP EP system. (http://help.sap.com).
         For broadcasting to KMC, ensure that KM has the u2018BEx Portfoliou2019 content available.
         Basis
    Re-check SAP BW Object and consistency     Execute RSRV to check SAP BW Object consistency
         Repeat tests that we executed prior to the upgrade.
         Validate results      BW
    Check InfoCube views for consistency     Check consistency of InfoCube fact table views
         It is possible that fact table view /BIC/V<InfoCube>F is missing if a number of SAP BW upgrades have been performed before. See SAP Note 525988 for instructions for the check and repair program.
         BW
    Perform SAP BW Plug-in (SAPI) upgrade follow-up tasks          If required, Re-activate the SAP BW u201CMyselfu201D source system in SAP BW.
         The SAP BW internal plug-in (SAPI), which is used for internal data mart extraction and u2018BW to BWu2019 communication, is upgraded during the SAP BW upgrade. The source system is de-activated to prevent extractions and loading during the upgrade.
         It may be required to replicate export DataSources and reactivate transfer structures/rules for internal data loads (i.e. ODS Object to InfoCube objects).
    o     Tip: It is advised to do this step for all export DataSources to avoid possible errors during execution of InfoPackages
         Check that all other Source Systems are active.
    o     Activate as required.     Basis/BW
    Check SAP BW Personalization is implemented     (SAP BW 2.X upgrades will have performed this in the previous task).
    Validate that personalization has been activated in your SAP BW system.
    Note: It has been observed that in some cases, BEx Personalization has to be re-activated after an upgrade from SAP BW 3.x to BI 7.0. It is advised to check the status of personalization after the upgrade.
         Enter the IMG (transaction SPRO), select SAP Business Warehouse -> Reporting relevant settings -> General Reporting Settings -> Activate Personalization in BEx
    Check the status of the Personalization settings. All entries should be active u2013 highlighted by an unchecked check box.
         To activate highlighted Personalization, click Execute.     BW
    For SAP BW 2.0B/2.1C -> BI 7.0 Upgrades:
    Convert ODS secondary indexes to new standard     For SAP BW 2.0B/2.1C -> BI 7.0 Upgrades:
    Convert any customer created ODS Object secondary indexes to the new ODS Object index maintenance process.
         Re-create all indexes in the ODS Object definition screen in transaction RSA1.
         ODS indexes must conform to the new naming convention
         BW
    Converting IGS chart settings
         Convert you existing IGS chart settings (converts IGS chart settings from BLOB to new XML storage format)
         Ensure you have the latest SAP Web AS 6.40 IGS (stand alone windows version) installed and working
    o      Test via transaction RSRT
         Execute the conversion process as directed the BI 7.0 upgrade guide.
         Note: This step is required for all BI 7.0 upgrades     Basis
    Backup your SAP BW system     Perform a full database backup (including the File system)
    Remember to adjust your backup scripts to include new components such as the J2EE engine, pre-calculation service, etc.
         Database Admin

  • # of objects, not the size of the objects, determine size of a Collection

    There are objects, and references to objects.
    Do, List / Set / Map , etc. just maintain a list of 32-bit addresses for their contained objects? What more does a Collection need, memory-wise, to add an element? The size of the objects in a Collection should not matter?
    listA.add(new Integer(2));  // listA size grows by 32-bits
    listB.add(new GiantSizedClass());  // listB size grows by 32-bitsI started thinking about Collections being able to dynamically grow in runtime. I heard this is complex, but it "looks" like all you do is append a memory address and incriment a counter? This sounds quick, easy, and incorrect. I don't understand. Thanks.

    jverd, ejp: you have always been there with quick responses to help me. ejp, i purchased your book "Fundamental Networking in Java". When I start programming again, your book about RMI is on my list. that said.
    with all sincerity. i belived that serliazing objects in byte[] allows for storing objects in objects, not object references in objects. here is my test code (just cut/paste):
    My idea seems similars to me as cryogenics and so that is the theme of my test code (and it is my favourite movie). note: this code is "proof of concept" and is exetremely hacked together.
    public class Test {
      private static HashMap<String, byte[]> barracks = new HashMap<String, byte[]>();
      public static void main(String[] args) {
        try {  new Test().go();  }   catch(Exception e) {  e.printStackTrace();  }
      public void go() throws Exception {
        Employee empl = new Employee("Dallas", "Captain");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Kane", "Navigator");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Ripley", "First Officer");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        empl = new Employee("Ash", "Science Officer");
        barracks.put(empl.name, cryogenicallyFreeze(empl));
        System.out.println("___log file___");System.out.println(".........");
        int id = (int) (System.currentTimeMillis() % barracks.size());
        System.out.println("[Nostromo]: emergency id #"+id+". Re-animation initiated...");
        switch (id) {
          case 0: empl = (Employee) reanimate("Dallas"); break;
          case 1: empl = (Employee) reanimate("Kane"); break;
          case 2: empl = (Employee) reanimate("Ash"); break;
          case 3: empl = (Employee) reanimate("Ripley");
        System.out.println("[Nostromo]: \"" + empl.name + "\" in command.");
        System.out.println("["+empl.name+"]: Hello. I was an object, not a reference, stored in a collection.");
        System.out.println();
        public static Employee reanimate(String name) throws Exception {
            PipedOutputStream pout = new PipedOutputStream();
            PipedInputStream pin = new PipedInputStream(pout);
            byte[] frozenEmpl = (byte[]) barracks.get(name);
            pout.write(frozenEmpl);
            ObjectInputStream ois = new ObjectInputStream(pin);
            return ((Employee) ois.readObject());
        public static byte[] cryogenicallyFreeze(Employee emp) throws Exception {
            PipedOutputStream pout = new PipedOutputStream();
            PipedInputStream pin = new PipedInputStream(pout);
            ObjectOutputStream oos = new ObjectOutputStream(pout);
            oos.writeObject(emp);
            byte[] frozenEmpl = new byte[pin.available()];
            pin.read(frozenEmpl);
            return frozenEmpl;
          public static class Employee implements Serializable {
            String name; String title;
            Employee(String n, String t) {  name = n; title = t;  }
    }"inside" of each byte[] object is an "Employee" object? I can't see it any other way. But I am not the sharpest pencil in the drawer...I'm on vacation from coding for a while. maybe i will get it when i start again. thanks.
    Edited by: rdkh on Jan 29, 2010 3:53 AM

  • Serialize the object between Server and Client?

    Hello friends,
    What is the important to Serialize the object between server and client?
    Thanks
    tamilvanan

    in which context ??
    Anyways,checkout the below link and try to understand how do we convert Serializable Object's State to in Stream and send it over network.
    http://java.sun.com/j2se/1.4.2/docs/guide/serialization/examples/index.html
    Hope that might help :)
    REGARDS,
    RaHuL

  • How am I able to put the video stream onto a panel i create??

    Are there anyways to place the video stream onto a panel ???

    Thanks a lot brother but is there any source code i can refer to so that i can understand better how they place the streaming object in the panel??

  • Write(Export) the RTP Stream from a SIP Call to an audio file

    I am working on telephony system that need record each call to a file.
    I got the RTP Stream in ReceiveStreamEvent handler and start to record
    the problem is i got a file and play it but there are any sounds
    when i set FileTypeDescriptor.WAVE and AudioFormat.ULAW
    I try out the FileTypeDescriptor.WAVE and AudioFormat.IMA4_MS, i got a fixed size file with 60kb
    if the FileTypeDescriptor.MPEG_AUDIO and AudioFormat.MPEG, the processor cannot be realize,
    the thread is blocked!!
    Could anyone save me? thanks in advanced!
    =================================Code===================================================
    public void update(ReceiveStreamEvent evt){
    logger.debug("received a new incoming stream. " + evt);
    RTPManager mgr = (RTPManager) evt.getSource();
    Participant participant = evt.getParticipant(); // could be null.
    ReceiveStream stream = evt.getReceiveStream(); // could be null.
    if (evt instanceof NewReceiveStreamEvent)
    try
    stream = ( (NewReceiveStreamEvent) evt).getReceiveStream();
    DataSource ds = stream.getDataSource();
              recorder = new CallRecorderImpl(ds);
    recorder.start();
    catch (Exception e)
    logger.error("NewReceiveStreamEvent exception ", e);
    return;
    ========================================================================================
    this is the CallRecorderImpl Class
    public class CallRecorderImpl implements DataSinkListener, ControllerListener {
         private Processor processor = null;
         private DataSink dataSink = null;
         private DataSource source = null;
         private boolean bRecording = false;
         FileTypeDescriptor contentType = new FileTypeDescriptor(FileTypeDescriptor.WAVE);
         Format encoding = new AudioFormat(AudioFormat.IMA4_MS);
    MediaLocator dest = new MediaLocator("file:/c:/bar.wav");
         public CallRecorderImpl(DataSource ds) {
              this.source = ds;
         public void start() {
              try {
                   processor = Manager.createProcessor(source);
                   processor.addControllerListener(this);
                   processor.configure();
              } catch (Exception e) {
                   System.out.println("exception:" + e);
         public void stop() {
              try {
                   System.out.println("stopping");
                   this.dataSink.stop();
                   this.dataSink.close();
              } catch (Exception ep) {
                   ep.printStackTrace();
         public void controllerUpdate(ControllerEvent evt) {
              Processor pr = (Processor) evt.getSourceController();
              if (evt instanceof ConfigureCompleteEvent) {
                   System.out.println("ConfigureCompleteEvent");
                   processConfigured(pr);
              if (evt instanceof RealizeCompleteEvent) {
                   System.out.println("RealizeCompleteEvent");
                   processRealized(pr);
              if (evt instanceof ControllerClosedEvent) {
                   System.out.println("ControllerClosedEvent");
              if (evt instanceof EndOfMediaEvent) {
                   System.out.println("EndOfMediaEvent");
                   pr.stop();
              if (evt instanceof StopEvent) {
                   System.out.println("StopEvent");
                   pr.close();
                   try {
                        dataSink.stop();
                        dataSink.close();
                   } catch (Exception ee) {
                        ee.printStackTrace();
         public void dataSinkUpdate(DataSinkEvent event) {
              if (event instanceof EndOfStreamEvent) {
                   try {
                        System.out.println("EndOfStreamEvent");
                        dataSink.stop();
                        dataSink.close();
                        System.exit(1);
                   } catch (Exception e) {
         public void processConfigured(Processor p) {
              // Set the output content type
              p.setContentDescriptor(this.contentType);
              // Get the track control objects
              TrackControl track[] = p.getTrackControls();
              boolean encodingPossible = false;
              // Go through the tracks and try to program one of them
              // to output ima4 data.
              for (int i = 0; i < track.length; i++) {
              try {
                   track.setFormat(this.encoding);
                   encodingPossible = true;
              } catch (Exception e) {
                   track[i].setEnabled(false);
              if (!encodingPossible) {
                   System.out.println("cannot encode to " + this.encoding);
              return;
              p.realize();
         public void processRealized(Processor p) {
              System.out.println("Entered processRealized");
    DataSource source = p.getDataOutput();
    try {
         dataSink = Manager.createDataSink(source, dest);
         dataSink.open();
         dataSink.start();
         dataSink.addDataSinkListener(new DataSinkListener() {
                        public void dataSinkUpdate(DataSinkEvent e) {
                             if (e instanceof EndOfStreamEvent) {
                                  System.out.println("EndOfStreamEvent");
                                  dataSink.close();
    } catch (Exception e) {
         e.printStackTrace();
         return;
              p.start();
    ============================================

    Which shows that the output stream cannot be of that particulat format and descriptor.
    Look at this code
    import javax.swing.*;
    import javax.media.*;
    import java.net.*;
    import java.io.*;
    import javax.media.datasink.*;
    import javax.media.protocol.*;
    import javax.media.format.*;
    import javax.media.control.*;
    class Abc implements ControllerListener
         DataSource ds;
         DataSink sink;
         Processor pr;
         MediaLocator mc;
         public void maam() throws Exception
              mc=new MediaLocator("file:C:/Workspace/aaaaa.mpg");
              pr=Manager.createProcessor(new URL("file:G:/java files1/jmf/aa.mp3"));
              pr.addControllerListener(this);
              pr.configure();          
         public void controllerUpdate(ControllerEvent e)
              if(e instanceof ConfigureCompleteEvent)
                   System.out.println ("ConfigureCompleteEvent");
                             Processor p = (Processor)e.getSourceController();
                   System.out.println ("ConfigureCompleteEvent");
                         processConfigured(p);
              if(e instanceof RealizeCompleteEvent)
                   System.out.println ("RealizeCompleteEvent");
                           Processor p = (Processor)e.getSourceController();
                             processRealized(p);
              if(e instanceof ControllerClosedEvent)
                         System.out.println ("ControllerClosedEvent");
                     if(e instanceof EndOfMediaEvent)
                        System.out.println ("EndOfMediaEvent");
                        Processor p = (Processor)e.getSourceController();
                        p.stop();
                 if(e instanceof StopEvent)
                         System.out.println ("StopEvent");
                         Processor p = (Processor)e.getSourceController();
                         p.close();
                   try
                        sink.stop();
                        sink.close();
                   catch(Exception ee)
         public void processConfigured(Processor p)
              System.out.println("Entered processConfigured");
              p.setContentDescriptor (new FileTypeDescriptor (FileTypeDescriptor.MPEG_AUDIO));       
                /*    TrackControl track[] = p.getTrackControls ();
                 boolean encodingPossible = false;
                 for (int i = 0; i < track.length; i++)
                      try
                           track.setFormat (new VideoFormat (VideoFormat.MPEG));
                   encodingPossible = true;
                   catch (Exception e)
                   track[i].setEnabled (false);
         p.realize();
         public void processRealized(Processor p)
              pr=p;
              System.out.println("Entered processRealized");
              try
                   MediaLocator dest = new MediaLocator("file:C:/Workspace/ring1.mpg");
                   sink = Manager.createDataSink(p.getDataOutput(), dest);
              sink.addDataSinkListener(new DataSinkListener()
                        public void dataSinkUpdate(DataSinkEvent e)
                             if(e instanceof EndOfStreamEvent)
                        System.out.println ("EndOfStreamEvent");
                                  sink.close();
                   sink.open();
                   sink.start();
              catch(Exception eX)
              System.out.println("Just before start");
              p.start();
    /*     public void dataSinkUpdate(DataSinkEvent event)
              if(event instanceof EndOfStreamEvent)
                   try
                        System.out.println("EndOfStreamEvent");
                        dsk.stop();
                        dsk.close();
                        System.exit(1);
                   catch(Exception e)
    public class JMFCapture6
         public static void main(String args[]) throws Exception
              Abc a=new Abc();
              a.maam();

Maybe you are looking for

  • Mid 2010 macbook pro freezes and restarts when moved.

    My macbook pro crashes daily and sometimes I have to keep turning it on for about 5 minutes because it doesn't start up it just beeps. once it starts up it tends to crash when moved even slightly. I have the crash reports and I'm hoping someone can h

  • Very bad signal on iPhone 4 after upgrade to IOS 6

    After upgrading my iPhone 4 from IOS 5.1.1 to IOS 6, I started having lot of troubles with signal and signal strength: the phone is continuously switching form 3G to GPRS/Edge, signal strength is always bad, Internet access is almost unusable, and so

  • T400 faint image problems and dark, leds off inverter

    I have a 6475-BC1 t400 the problem is: does not show image on screen, the front leds off, connect an external display and the picture is normal, they proceeded to change according HMM systemboard iverter and the problem persists, the screen proved on

  • How can I run a labview 7.2 vi in labview 8.2

    We have several versions of labview running different test and control functions in our facility. There are labview 7.2 VIs in a production setting I wish to reproduce in the test lab. Can I convert them to run on 8.2 or do I have to recreate them in

  • Documentary Payment Guarantee Data Source (AKKP table)

    Hi sap gurus, I couldn't find a data source based on AKKP table. I need Documentary Payment Guarantee information. I can create documants with vx11n. this transaction creates data at AKKP table for a specific customer. is there any specific data sour