Question using Java API in a multi threaded application for MDX queries

Currently I’m building a web application that makes a lot of MDX calls using the Essbase Java API. Each time we run an MDX call we basically run the following code:
IEssbase ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);
IEssDomain dom = ess.signOn(userName, password, false, null, "embedded");
IEssCubeView cv = cv=dom.openCubeView("view", hostName, appName, cubeName);
IEssOpMdxQuery op = cv.createIEssOpMdxQuery();
op.setQuery(false,mdx,false,IEssOpMdxQuery.EEssMemberIdentifierType.NAME);
cv.performOperation(op);
IEssMdDataSet mddata = cv.getMdDataSet();
cv.close();
My questions is, is this the correct way to use the API in multi threaded environment where many users may be hitting the application at the same time? For every request do I need to create a separate IEssbase object and sign on to an IEssDomain? Or can I use a single IEssbase and IEssDomain object for the entire application? If not should I call the IEssDomain.signOff() method after each user’s request has completed? Which of the above objects are thread safe? I’m using Essabae 9.3.1. Any insight would be really appreciated.
Thanks
David

Thanks for the input friend,
I should have mentioned that in my application all
connections to Essbase use the same user name and
password so the filtering isn’t a concern. This is my
first Java application using Essbase has a data
source, I’m used to connecting to various SQL
databases and I always use a connection pool, how is
connection pooling handled in the Essbase java API?I'm not sure what happened to it since I never used it, but there used to be something called the High Availability Services or something that was essentially a connection pool for Essbase JAPI connections, but it required an extra license.
Since you don't care about identity (everyone has full access to everything), you can create your own connection pool, but you'll have to manage your multithreading yourself. Its been this way since the beginning. The C API isn't/wasn't thread-safe either (we tried).

Similar Messages

  • Java Security Manager in Multi-threaded application

    I am writing a multi-threaded application listening (TCP and UDP) to several ports. To help implement certain security features (eg. refusing connections from certain ip address), I'm using the java.lang.SecurityManager (by subclassing it). I am having a few problems and queries and am hoping someone here can help me.
    1. As all the threads are calling the checkAccept(host, port) method. Is there a way to know which thread is currently accessing the security manager? For example if host A were to make 2 connections to the application, one to thread 1 (say listening to port 5001) and the other to to thread 2 (say listening to port 5002). I intend to refuse the connection to thread 2 but there is not way of differentiating the 2 connections since they are from the same host and there isnt any way of knowing their port number.
    2. Are calls to the Security Manager thread safe?
    I have been having this problem for a long time, would appreciate if someone can help point me to the right direction. cheers.

    1. As all the threads are calling the
    checkAccept(host, port) method. Is there a way to
    know which thread is currently accessing the security
    manager?Just use Thread.currentThread(). As specified in the Javadoc for e.g. SecurityManager.checkAccept().
    2. Are calls to the Security Manager thread safe? No.

  • Error when using same QueueSession in a multi threaded application

    I have deployed a OSSJ Trouble Ticket refererence Implementation on Sun Java System App Server Platform Edition 8.1 default server.
    The TT server listens on queue MessageQueue and sends its reply on MessageReplyQueue
    The application that sends the request to the TT server should support concurrent requests using threads.
    The sender application creates a QueueConnection and a QueueSession.
    This QueueSession is shared by all the threads that send the request to the TT server.
    Each thread creates its own QueueSender, TemporaryQueue which is set as replyTo in the message, QueueReceiver using the TemporaryQueue in the run method
    When the application is run multiple times i get the following exception
    javax.jms.IllegalStateException: [C4055]: Resource in conflict. Concurrent operations on a session.
    at com.sun.messaging.jmq.jmsclient.SessionImpl.setInSyncState(SessionImpl.java:2177)
    at com.sun.messaging.jmq.jmsclient.SessionImpl.acknowledge(SessionImpl.java:972)
    at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.receive(MessageConsumerImpl.java:375)
    at com.sun.messaging.jmq.jmsclient.MessageConsumerImpl.receive(MessageConsumerImpl.java:347)
    at xvt.tt.MessageSenderMultiThread.run(MessageSenderMultiThread.java:112)
    The code looks as follows
    public class MessageSenderMultiThread extends Thread {
    private String strMessage = null;
    private QueueSender queueSender = null;
    private QueueReceiver queueReceiver = null;
    private TextMessage message = null;
    private TemporaryQueue tempQueue = null;
    private QueueConnection tempQC = null;
    private QueueSession tempQS = null;
    private Queue tempQ = null;
    String inputQname = "MyQueue";
    String outputQname = "A";
    private int sleepTime;
    static InitialContext jndiContext = null;
    Queue replyQueue=null;
    Hashtable sessions=null;
    static QueueConnection queueConnection = null;
    public static String readFromFile(String fileName) {
    String line = null;
    try {
    FileReader fr = new FileReader(fileName);
    BufferedReader br = new BufferedReader(fr);
    String temp = "";
    line = "";
    while ((temp = br.readLine()) != null) {
    //System.out.println("line is"+line);
    if (temp != null)
    line = line + temp;
    return line;
    } catch (Exception ex) {
    System.out.println("Exception occurred,Ex" + ex);
    return line;
    MessageSenderMultiThread(String strMsg, int sTime, QueueConnection qC, QueueSession qS, Queue q, String name) {
    super(name);
    this.strMessage = strMsg;
    this.sleepTime = sTime;
    this.tempQC = qC;
    this.tempQS = qS;
    this.tempQ = q;
    sessions=new Hashtable();
    System.out.println("Inside Constructior");
    public void run() {
    try {           
    queueSender = tempQS.createSender(tempQ);
    tempQueue = tempQS.createTemporaryQueue();
    queueReceiver = tempQS.createReceiver(tempQueue);
    //queueReceiver = tempQS.createReceiver(replyQueue);
    message = tempQS.createTextMessage();
    message.setText(this.strMessage);
    message.setJMSReplyTo(tempQueue);
    //message.setJMSReplyTo(replyQueue);
    message.setJMSCorrelationID("1234");
    queueSender.send(message);
    System.out.println(message.getText());
    tempQC.start();
    //while (true) {
    Message m = queueReceiver.receive();
    if (m != null) {
    if (m instanceof TextMessage) {
    message = (TextMessage) m;
    if (message != null) {                           
    System.out.println("########################corr id::"+message.getJMSCorrelationID());
    queueReceiver.close();
    //System.out.println("message:: " + message.getText() + "Thread Name " + this.getName());
    } else
    System.out.println("NULL");
    } //else
    //break;
    System.out.println("Exiting !");
    } catch (JMSException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
    public static void main(String args[]) {
    String inputQname = "System/RI/ApplicationType/TroubleTicket/Application/1-0;0-0;OSSJTTRI/Comp/MessageQueue";
    QueueConnectionFactory queueConnectionFactory = null;
    QueueSession queueSession = null;
    Queue inputQueue = null;
    try {
    jndiContext = new InitialContext();
    queueConnectionFactory = (QueueConnectionFactory) jndiContext.lookup("System/RI/ApplicationType/TroubleTicket/Application/1-0;0-0;OSSJTTRI/Comp/QueueConnectionFactory");
    inputQueue = (Queue) jndiContext.lookup(inputQname);
    queueConnection = queueConnectionFactory.createQueueConnection();
    queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    } catch (JMSException e) {
    e.printStackTrace();
    } catch (Exception e) {
    e.printStackTrace();
    String strRequest = null;
    strRequest = readFromFile("C:/ISM/getTroubleTicketsByKeysRequest.xml");
    new MessageSenderMultiThread(strRequest, 100, queueConnection, queueSession, inputQueue, "Thread1").start();
    strRequest = readFromFile("C:/ISM/getTroubleTicketsByKeysRequest1.xml");
    new MessageSenderMultiThread(strRequest, 100, queueConnection, queueSession, inputQueue,"Thread2").start();
    System.out.println("OVER");
    // System.exit(-1);
    }

    A session is single threaded (so it can not be used by different threads and generate valid behavior). This behavior is covered in @ setion 4.4 of the JMS specification
    If you need multiple threads to process messages you should either:
    * have them share a single session
    * read messages in from the session in a single thread and pass them off to
    other threads processing the message
    On the second option, you must have the "reading" thread also acknowledge the message in client acknowledge (or commit in transactions)

  • Extract TIFF from Multi-Tiff using Java API

    Please teach me how to extract TIFF from Multi-Tiff using Java API.

    I'm fairly sure one of the JAI examples show just this.

  • Can't display a Tile Layer using JAVA API V2 (based on HTML5)

    Hi Experts,
    I am trying to display a tile layer using JAVA API V2 but i get the below error and nothing shows after that.
    MAPVIEWER-05501: Map tile layer not found. Check map tile layer name and/or data source name.
    Source: OM.layer.Tilelayer.getTileLayerConfig
    *[mvdemo.demo_map]*
    I tried with chrome and firefox browsers which supports HTML5 but same issue. Here is the html code i am using
    <html>
    <head>
    <title></title>
    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
    <script type='text/javascript' src='http://localhost:8282/mapviewer/jslib/v2/oraclemapsv2.js'></script>
    <style type= 'text/css '>body {cursor:default;}</style>
    <script language="JavaScript" type="text/javascript">
    function showMap()
    var baseURL = "http://"+document.location.host+"/mapviewer";
    var mapCenterLon = -122.45;
    var mapCenterLat = 37.6706;
    var mapZoom = 4;
    var mpoint = new OM.geometry.Point(mapCenterLon,mapCenterLat,8307);
    var map = new OM.Map(
    document.getElementById('map'),
    mapviewerURL: baseURL
    var tileLayer = new OM.layer.TileLayer(
    "baseMap",
    dataSource:"mvdemo",
    tileLayer:"demo_map",
    tileServerURL:baseURL+"/mcserver"
    map.addLayer(tileLayer) ;
    navigationPanelBar=new OM.control.NavigationPanelBar();
    map.addMapDecoration(navigationPanelBar);
    map.setMapCenter(mpoint);
    map.setMapZoomLevel(mapZoom) ;
    map.init() ;
    </script>
    </head>
    </html>
    Note: inside the body on load i use DIV Id = Map (i skipped that one line of code because it stops rest of the line from displaying in the thread)
    However, I am successful in using the same tile Layer with JAVA API V1
    Please share your thoughts as what could be the fix
    Thanks
    Nag

    Nag,
    inside the body on load i use DIV Id = Map (i skipped that one line of code because it stops rest of the line from displaying in the thread)please surround your code with [ c o d e ] [ / c o d e ] (without the spaces).
    Secondly: this is probably more appropriate for the {forum:id=727} forum.
    Regards,
    Stefan

  • GetSelectedFields()  for time stamp and user stamp using java api

    using Java API's
    getSelectedFields() returns NULL  value if values presented also, for Time stamp and User stamp
    properties in Flat tables , is there any other alternative way to get the SelectedFields values ?
    Edited by: Vijaya Sekhar Reddy Alla on Mar 19, 2008 3:16 PM

    Well, I can't say I solved the problem, because I got another one afterwards.
    As usually I created a GetFieldListCommand, set its needed attributes and executed it. Then I read all the field properties out:
    FieldProperties[] fieldProp = getFieldListCommand.getFields();
    Afterwards it is possible to do what you want. Using a for-loop.
    for (FieldProperties fp : fieldProperties) {
        UserStampFieldProperties usfp = (UserStampFieldProperties) fp; // <= Cast error
        FieldId[] fieldIDs = usfp.getSelectedFields();
    And this is what I get now:
    Exception in thread "main" java.lang.ClassCastException: com.sap.mdm.schema.fields.FixedWidthTextFieldProperties cannot be cast to com.sap.mdm.schema.fields.UserStampFieldProperties
    Why this happens, I don't know. But it should somehow be solveable.

  • Idea  about convert word document to pdf using java api

    idea about convert word document to pdf using java api if any one find it mail me at [email protected]

    api if any one find it mail me at
    [email protected]
    What happend to your other mailID :
    [email protected] ????
    http://forum.java.sun.com/thread.jspa?threadID=639851&
    messageID=3756910It received the Spam Of Death. RIP

  • Search for a Multilingual value in MDM using JAVA API

    Good day,
    Could you kindly assist.
    I am trying to search for a field in MDM, from Portal using JAVA API. I do retrieve the value in English, but the problem is when I am trying to retrieve it in other languages. Please see sample code:
         private Search getSearch(MDMConnection mdmconnection,String value, TableId tableid){
              Search search =null;
              FieldSearchDimension fielddimension=null;
              TextSearchConstraint textcontrain=null;
              RepositorySchema reposchema =mdmconnection.reposchema;          
                                               if(value!=null)
                   search= new Search(tableid);
                   fielddimension=new FieldSearchDimension(reposchema.getFieldId("ATTR_VAL_ABBR","TEXT_VALUE"));
                   textcontrain=new TextSearchConstraint(value,TextSearchConstraint.EQUALS);
                   search.addSearchItem(fielddimension,textcontrain);
                   search.setComparisonOperator(Search.AND_OPERATOR);
              return search;
    Thank you in advance.
    Regards,
    Simni

    Hi ,
    Mdm- Multilingual value in MDM using JAVA API:
    you can check the first point as its reagrdign youisue related pdf and soloutions for your question.
    1.  http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0e8aedc-cdfe-2c10-6d90-bea2994455c5?QuickLink=index&overridelayout=true
    2.  http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/b0e8aedc-cdfe-2c10-6d90-bea2994455c5?QuickLink=index&overridelayout=true
    Hope this information helps you in solving the  issue!!
    Thanks&Regards
    AswinChandraGirmaji

  • How to retrieve data from MDM using java API

    hi experts
    Please explain me the step by step procedure
    how to retrieve data from MDM using java API
    and please tell me what are the
    important classes and packages in MDM Java API
    thanks
    ramu

    Hi Ramchandra,
    You can refer to following links
    MDM Java API-pdf
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2d18d355-0601-0010-fdbb-d8b143420f49
    webinr of java API
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/89243c32-0601-0010-559d-80d5b0884d67
    Following Fourm Threads will also help.
    Java API
    Java API
    Re: usage of  java API ,
    Matching Record
    Need Java API for Matching Record
    Thanks and Regards,
    Shruti.
    Edited by: Shruti Shah on Jul 16, 2008 12:35 PM

  • Can i create more than one attributes for the custom class created using java API

    Hello everyone,
    I have been creating class and its attributes programatically using java APIs, I want to know that is there any way to create multipal attributs for the same class in just one call of API with all the options for each attributes,
    thanks

    You can create a new class and define all of the Attributes at the time the class is created - this is the preferred way of creating classes. Use the addAttributeDefinition() method on ClassObjectDefinition. If you need to add attributes to existing classes, you can only add them one at a time (using the addAttribute() method on ClassObject).
    (dave)

  • How to find bpel instance in 11g based on the index values using Java APIs

    Hi ,
    In SOA10G we had option to find the instances based on the index value using Java APIs like below.
    WhereCondition criteria= new WhereCondition(SQLDefs.CX_index_1 + " = ?");
    criteria.setString(1, "indexValue");
    Locator mLoc = getLocator();
    IInstanceHandle[] foundInstances = mLoc.listInstancesByIndex(criteria);
    Please tell me how to achieve the same functionality in SOA 11G using Java APIs
    Regards,
    Saba

    I have multiple bpel in my composite. I checked in ci_indexes table and it shows the instance number of the bpel process. But the em console is showing only the composite instance number. when I opened composite instance, I could see all the bpel process with instance number in the audit trail. How can I find the the actual composite instance number that I should search for in the em console ???

  • IllegalStateException while invoking livecycle formserver using java api

    I am new to livecycle formserver.when i am trying to invoke formserver using java api ,it is giving illegal state exception.My servlet application to invoke formserver is deployed in tomcat 5.o in one system and jboss with formserver is in anohter system.
    I am using the following properties to connect formserver in another system.
    Properties ConnectionProps = new Properties();
    ConnectionProps.setProperty("DSC_DEFAULT_EJB_ENDPOINT", "jnp://172.21.49.116:JBoss:1099");
    ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","EJB");
    ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss");
    ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");
    ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");
    And i am confusing in setting the following paths using UrlSpec object.
    URLSpec urlspec = new URLSpec();
    urlspec.setApplicationWebRoot("http://JBOSS:8080/FormServer");
    out.println("after webroot");
    urlspec.setContentRootURI("http://localhost:8080/srvapp");
    out.println("after contentroot");
    urlspec.setTargetURL("http://localhost:8080/srvapp/HandleData");
    My .xdp file is in my localsystem where my tomcat is running.and renderToHtml method is like this:
    FormsResult formOut = Fsc.renderHTMLForm(formName, TransformTo.AUTO,oInputData,htmlRenderSpec,"",urlspec,null);
    i am passing the path of the .xdp file in my local system to formName parameter.
    with this code i am facing problem.Is there anything wrong in my code?or is there any settings to change in formserver?
    please help me with this problem,i am trying to sort out this problem.
    Any help?
    Thanks in Advance

    If you are invoking LiveCycle ES2 on JBoss compile with JDK 1.6 and run against JRE 6.
    Steve

  • Need Sample Code for Vendor creation using JAVA API

    Hi,
    I have a scenario like Vendor creation using <b>Java API</b>.
    1.I have Vendors (Main) Table.
    2.I have <b>look up</b> tables like Account Group.
    3.Also <b>Qualifier table</b>(Phone numbers) too.
    Could you please give me the sample code which helps me to create Vendor records using Java API?
    <b>I need Code samples which should cover all of the above scenario.</b>
    <b>Marks will be given for the relevent answers.</b>
    Best Regards
    PK Devaraj

    Hi Devraj,
    I hope the below code might solve all your problem:-
    //Adding Qualified field
    //Creating empty record in Qualifed table 
    //Adding No Qualifiers
    Record qualified_record = RecordFactory.createEmptyRecord(new TableId(<TableId>));
    try {
    qualified_record.setFieldValue(new FieldId(<fieldId of NoQualifier), new StringValue(<StringValue>));//Adding No Qualifier
    catch (IllegalArgumentException e2) {
    // TODO Auto-generated catch block
    e2.printStackTrace();
    catch (MdmValueTypeException e2) {
    // TODO Auto-generated catch block
    e2.printStackTrace();
    //Creating Record in Qualified table
    CreateRecordCommand create_command = new CreateRecordCommand(connections);
    create_command.setSession(sessionId);
    create_command.setRecord(qualified_record);
    try
    create_command.execute();
    catch(Exception e)
    System.out.println(e.toString());
    RecordId record_id = create_command.getRecord().getId();
    //Adding the new record to Qualifed Lookup value and setting the Yes Qualifiers
    QualifiedLookupValue lookup_value = new QualifiedLookupValue();
    int link = lookup_value.createQualifiedLink(new QualifiedLinkValue(record_id));
    //Adding Yes Qualifiers
    lookup_value.setQualifierFieldValue(0 , new FieldId(<FieldID of Yes Qualifier>) , new StringValue(<StringValue>));
    //Now adding LookUP values
    //Fetch the RecordID of the value selected by user using the following function
    public RecordId getRecordID(ConnectionPool connections , String sessionID , String value , String Fieldid , String tableid)
    ResultDefinition rsd = new ResultDefinition(new TableId(tableid));
    rsd.addSelectField(new FieldId(Fieldid));
    StringValue [] val = new StringValue[1];
    val[0] = new StringValue(value);
    RetrieveRecordsByValueCommand val_command = new RetrieveRecordsByValueCommand(connections);
    val_command.setSession(sessionID);
    val_command.setResultDefinition(rsd);
    val_command.setFieldId(new FieldId(Fieldid));
    val_command.setFieldValues(val);
    try
         val_command.execute();
    catch(Exception e)
    RecordResultSet result_set = val_command.getRecords();
    RecordId id = null;
    if(result_set.getCount()>0)
         for(int i = 0 ; i < result_set.getCount() ; i++)
         id = result_set.getRecord(i).getId();     
    return id;
    //Finally creating the record in Main table
    com.sap.mdm.data.Record empty_record = RecordFactory.createEmptyRecord(new TableId("T1"));
    try {
         empty_record.setFieldValue(new FieldId(<FieldId of text field in Main table>),new StringValue(<StringValue>));
         empty_record.setFieldValue(new FieldId(<FieldId of lookup field in Main table>), new LookupValue(<RecordID of the value retrieved using the above getRecordID function>));
    empty_record.setFieldValue(new FieldId(<FieldId of Qualified field in Main table>), new QualifiedLookupValue(<lookup_value>));//QualifiedLookUp  value Retrieved above
    } catch (IllegalArgumentException e1) {
    // TODO Auto-generated catch block
         e1.printStackTrace();
    } catch (MdmValueTypeException e1) {
         // TODO Auto-generated catch block
         e1.printStackTrace();
    //Actually creating the record in Main table
    CreateRecordCommand create_main_command = new CreateRecordCommand(connections);
    create_main_command.setSession(sessionId);
    create_main_command.setRecord(empty_record);
    try
         create_main_command.execute();
    catch(Exception e)
         System.out.println(e.toString());
    Thanks
    Namrata

  • Iterate through all the records in a table using Java API

    Hi All,
    What is the easiest way to iterate through all the records in a given table using Java API? I cannot find any methods that will return all records in a table and the only way I can use is to perform a free form search with a condition that is always true. The code works but is pretty ugly. Is there an alternative to this approach?
    Thanks!
    Kenny

    Hi Kenny,
    You can construct a new Search object with your table's code name, a new ResultSetDefinition object for your table and just execute this search using the GetResultSet method of CatalogData.
    Please look at the following code:
    Search search = new Search(<code name of your table>);
    ResultSetDefinition rsd = new ResultSetDefinition(<code name of your table>);
    rsd.AddField<code name of a field>);
    rsd.AddField(<code name of a field>);
    String sortField = <code name of your sort field>;
    boolean sortAscending = true;
    int page = 0; //page number
    A2iResultSet rs = <your CatalogData object>.GetResultSet(search, rsd, sortField, sortAscending, page);
    for (int i = 0; i < rs.GetRecordCount(); i++)
        Value fieldValue = rs.GetValueAt(i, <code name of a field>);
    Hope this helps,
    Nir
    PS - I really recommend you to start using the new API, as it is much more efficient and straight-forward.

  • Best option to push Mass data using Java API

    Hi All,
    Can any one let me know how Java API push data to MDM? Is it a good option when ti comes to perfromance point of view? We have around 2000/5000 records to be imported every time using Java API and wondering what would be best way to acheive this using Java API?
    Is java API is best option than Web services?
    Thanks
    Rajeev

    Rajeev,
    It is perfectly fine to use API to push data into MDM, you just need to make sure that your API does all those tasks which import manager does by default. For example, it should know when to insert and when to update. if an error happens during insertion of record, you should be able to notify the users.
    Having said that, where does the number 2000/5000 comes in? will you be creating users in batch and then invoke MDM API to store these in a single shot or willl it be a delta insert/update from Java to MDM?
    Thanks
    Aamir

Maybe you are looking for

  • CS5, transfering an image from 64bit to 32bit

    I did a search but failed to find the answer, perhaps I asked it wrong, but in the meantime. I have a 3rd party plug-in I love (Kodak/ASF Digital GEM Airbrush). It only works in 32bit mode (and that took me awhile to figure out where I had to put it

  • Select node based on another node

    Hello - If I have XML code such as: <ROWSET> −<ROW> <AREA>AAA</AREA> <ACTIVITY>ACTIVE</ACTIVITY> <TOTAL>4</TOTAL> </ROW> −<ROW> <AREA>AAA</AREA> <ACTIVITY>NOTACTIVE</ACTIVITY> <TOTAL>1</TOTAL> </ROW> −<ROW> <AREA>AAA</AREA> <ACTIVITY>INOP</ACTIVITY>

  • How  to use ipad in estropad?

    bablu roy

  • I have just made a subscription to Skype premium b...

    I have just made a subscription to Skype premium but when I try to call I am asked to subscribe again or pay for credit, when I click on view account that subscription show. Anyone any ideas

  • CS5 crashes when Inserting pages.

    I have a 64 page document. In the Pages palette, I need to insert 4 pages, after page 3.  Every time I insert pages, it crashes, and closes the program. I'm finding CS5 Indesign to be very unstable.  Surprising.