Does container managed entity manager is thread-safe in stateless session bean?

Hello

I have read JEE6 doc and confused with

Manager managed entity containing does (injected by PersistenceContext annotation) is thread-safe in bean of stateless session in env mutiple-thread?

See code below, if there are 2 requests to stateless session bean in 2 concurrent threads, is it using the same Instance of the managing body or not?

@Stateless (name = "HRFacade", mappedName = "HR_FACES_EJB_JPA-HRFacade-HRFacade")

/ public class HRFacadeBean implements HRFacade, HRFacadeLocal {}

@Resource

SessionContext sessionContext;

@PersistenceContext (unitName = "HRFacade")

Private EntityManager em;

public places (places sites) persistLocations {}
EM. Persist (rentals);
return places;
}

public places (places sites) mergeLocations {}
Return em.merge (rentals);
}

{} public void removeLocations (places sites)
location = em.find (Locations.class, locations.getLocationId ());
EM. Remove (rentals);
}

/ * < code > o selection of the places where < code > * /.
@TransactionAttribute (TransactionAttributeType.NOT_SUPPORTED)
public list < location > getLocationsFindAll() {}
Return em.createNamedQuery ("Locations.findAll", Locations.class) .getResultList ();
}

}

Yes its safe. Stateless beans would be useless if it wasn't the case. That's the bit of "controlled container" description, as long as you leave the container do its job, you don't have to worry about such details.

Tags: Java

Similar Questions

  • JMS sender with container managed transaction ejb3

    Hi all

    I refer to the following link http://download.oracle.com/docs/cd/E11035_01/wls100/jms/trans.html#wp1035937

    I found that JTA support JMS.

    But I have no ' to use JTA explicitly, I want to use the container to manage the transaction. for example. within the ejb3 stateless session bean.

    support JMS?

    With respect,
    WP

    Hello

    Yes, WebLogic JMS supports JTA (alias XA, a.k.a global) transactions such as container managed transactions. There are two conditions for CMTs on SSB:

    (1) use a parameter descriptor XML or EJB annotation to turn on CMT for SSB

    (2) use a WebLogic JMS connection factory that is configured to have 'global transactions (XA) enabled.

    And I usually recommend also:

    (3) consider using a JEE 'res-ref' for the connection factory to allow reunification of the JMS resources. See "Enhanced Support for using WebLogic JMS with EJB and servlet ' (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/j2ee.htm#g1329180) and the 'integration JMS remote suppliers' FAQ (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/interop.htm#JMSPG553).

    (4) avoid using a BSN to receive messages. BMD is designed to process incoming messages.

    It is also possible to have WebLogic automatically registered foreign suppliers (non-WebLogic) in WebLogic transactions. See the 'integration JMS remote suppliers' FAQ for more details (http://download.oracle.com/docs/cd/E14571_01/web.1111/e13727/interop.htm#JMSPG553).

    Kind regards

    Tom

  • tables dynamic thread-safe

    Hi all

    trying to convert my application single-threaded for multithreading, that I met a new obstacle:

    I would like to have a global data structure. This structure must be dynamically allocated and reallocated as the number of threads (and thus the size of the structure) depends on the program execute / user.

    The main thread as long as secondary threads should be able to access this structure, so I need to use a variable in thread safe, somehow. All the samples I've traveled so far, either use a single variable using the DefineThreadSafeScalarVar macro, or an array of size fixed by using the DefineThreadSafeArrayVar macro.

    I haven't found an example of this type of a dynamic array, unfortunately... Some kind soul would be willing to teach me how to proceed?

    Thank you

    Wolfgang

    In your case, you must use a TSV scalar that contains the pointer is allocated/re-allocated. See the following example of a TSV that mimics a dynamic array of integers. In some cases, a better solution would be to have a TSV scalar that contains a list, say, box tools ListType.

    #include

    DefineThreadSafeVar (int *, DynMem);

    void main (void)
    {
    int * pDynMem, i.;
       
    Initialize the TSV
    InitializeDynMem();
       
    Define HSV 'table' to hold 10 integers
    SetDynMem (malloc (10 * sizeof (int)));
       
    Set and get the 'elements' of TSV
    pDynMem = GetPointerToDynMem();
    for (i = 0; i< 10;="">
    {
    (* pDynMem) [i] = i;
    printf ("DynMem [%d] = %d\n", (* pDynMem) [i], i);
    }
    ReleasePointerToDynMem();
       
    Resize the TSV "array".
    pDynMem = GetPointerToDynMem();
    * pDynMem = realloc (* pDynMem, 20 * sizeof;)
    for (i = 10; I)< 20;="">
    (* pDynMem) [i] = i;
    for (i = 0; i< 20;="">
    printf ("DynMem [%d] = %d\n", (* pDynMem) [i], i);
    ReleasePointerToDynMem();
       
    Free TSV "array".
    pDynMem = GetPointerToDynMem();
    Free(*pDynMem);
    ReleasePointerToDynMem();
       
    Cancel initialization of TSV
    UninitializeDynMem();
    }

  • BBM SDK Thread Safe?

    Anyone know if the messages sent/received are thread-safe, or do we do us our own synchronization to ensure that a new message does not come before the end of the old?

    In this case messages would be delivered in the order they are received.  Each call is on the same thread.

  • Is JTextArea append() method thread-safe?

    It was noted in another ad that in JDK 7, the JTextArea append() method is more explicitly described as being thread-safe:

    http://download.Java.NET/jdk7/docs/API/javax/swing/JTextArea.html#append
    I do not use JDK7, but here is the code for the method append in JDK6_7 (I guess that he has not changed in JDK7?):
    public void append(String str) {
        Document doc = getDocument();
        if (doc != null) {
            try {
                doc.insertString(doc.getLength(), str, null);
            }
            catch (BadLocationException e) {
            }
        }
    }
    As you can see the code simply calls the insertString (...) method of the Document. JDK7 documentation, the insertString (...) method is still marked as being thread-safe:

    http://download.Java.NET/jdk7/docs/API/javax/swing/text/PlainDocument.html#insertString

    I always confused when you work with Threads. A few questions:

    (1) if the append() method eventually calls insertString (...), which is a safe method of thread that does the method append() safe thread?

    (2) assuming that the code in the method append has not changed in JDK 7 documentation has been bad for the first 6 versions of the JDK? Or is the documentation for JDK 7 lack instruction thread safe?

    (3) I know in the past I've suggested append() is thread-safe. It seems I should change my advice to wrap this method in a SwingUtilities.invokeLater (...). Is this a safe approach in any case to avoid confusion?

    camickr wrote:
    The PlainDocument does not use a lock. Here's the code for the JDK6:

    The lock is #insertString AbstractDocument. The additional filter of PlainDocument #insertString code is thread-safe, because it uses only local variables and GetFilter() reading is true or false/null.

    Even if filtering is not done, is it not theoretically possible that change of threads can occur before the super.insertString (...) is running?

    I guess what I'm asking is that if a single line of code runs before the writeLock() method is called is there way for there to be threading issues?

    Yes, but it's similar to the way in which a synchronized map is thread-safe, you can call containsKey (k) followed by get (k), and these methods are "thread-safe", but if you want to combine you need to do an extra lock. The only thread safe object is immutable.
    One difference here is that a card will return NULL but AbstractDocument launches a BadLocationException. Also if you want to get the lock, the only option is to subclass since writeLock() is protected and final.

  • Are thread-safe queues

    Hi all

    Are secure i.e. thread queues are enqueue, dequeue Atomic etc?

    I'm looking to use queues to transfer objects between concurrent loops States, but am worried if I need to protect the access via a semaphore.

    Thank you

    Phill

    Yes.  Queue operations are atomic.  It is safe to assume that everything in LabVIEW is thread-safe, unless otherwise stated, it is since always a language designed for operation in parallel.

  • Thread Safe variables - several symbol at link definitions

    I'm going through the tutorial "Multithreading in LabWindows/CVI.

    The following line is in the tutorial about the variables in Thread-Safe:

    "If you need to access the variable in thread-safe from more than one file source, use the macro DeclareThreadSafeScalarVar or DeclareThreadSafeArrayVar in an include (.h) file for create statements for the accessor functions."

    OK works with a source file, but when I include the header file in a second file from the source, I have "Several definitions for symbol" errors when link for all functions of accessor in the two source files.

    It's probably something simple, but after a few hours I'm at a loss. Any ideas are appreciated.

    Scott T

    You should have DefineThreadSafeXXX in exactly a source file and a DeclareThreadSafeXXX in any number of source files (or in a file header included in the source files). The following works for me in 2012 of the CVI:

    / * temp.h * /.

    #include

    DeclareThreadSafeScalarVar (double, Num);

    void test (void);

    * Temp.c * /.

    #include "temp.h".

    DefineThreadSafeScalarVar (double, Num,-1);

    void main (void) {}

    InitializeNum();

    test();

    }

    / * temp2.c * /.

    #include "temp.h".

    void test (void) {}

    SetNum (1.0);

    }

  • MY dell inspiration does not start, it will only in Safe Mode

    MY dell inspiration does not start in normal mode, in safe mode. I have windows vista. any help please. Thanks in advance

    Hello

    1. Close all running programs and open the windows if you are back on the desktop.
    2. Click on the Start () button.
    3. In the search box of the Start Menu, type in msconfig
    4. Then press enter on your keyboard.
    5. The System Configuration utility opens
    6. Make sure that Start Selection is set for Normal start.
    7. Click the Startup tab.
    8. Make sure you start is not checked
    9. Press the apply button and then press the OK button.
    10. Click the restart button to restart your computer.

    See you soon.

  • Access EJB session bean in JSF managed bean

    Components of the project: Weblogic 11 G + 12 c, 12 c EJB3 JPA 2 Jdeveloper-ADF

    I need to access EJB session bean in JSF managed bean and some methods of execution by program

    Work method and return EJB below
    Is this fair? Another way

    public static Object getEjbForDataControl (String name) {}
    BindingContainer DCBindingContainer = (DCBindingContainer) BindingContext.getCurrent () .getCurrentBindingsEntry ();
    DCDataControl cDataControl = bindingContainer.findDataControl (name);
    Return cDataControl.getDataProvider ();
    }

    Thank you

    Mohsen

    Hi Isabelle,.

    I assumed that his Session EJB bean has not been exposed as a data control (my bad, didn't read any of the discussion).

    Antonis

  • OTMQ + JCA - it is thread-safe?

    Hello

    Currently, we are conducting a doubt in our minds regarding using the OTMQ with a JCA component. We build into our architecture a component in order to call by a java bean that is deployed inside a WL server, an OTMQ instance that is running on the same machine. This OTMQ instance is the platform independent (not Tuxedo + OTMQ) OTMQ and on the side of Java, we would use a mixture of JCA and, if necessary, JNI calls to establish a connection between these two components.

    My question here is, because WL will have multiple instances of this bean, are there problems I should be aware with respect, using multiple threads in such a component? In my view, that should we not we have no problem with that, given that OTMQ works similar like Tuxedo/q, but I was wondering if there is something you miss here.

    If you could just help me understand if I am having trouble with this architecture, I would be very grateful.

    Thank you

    brunno Attorre

    Hi Brunno,

    The JCA adapter is thread-safe, and if you find any problems associated with the JCA adapter threads, report it to the Support of Oracle.  About OTMQ, in my opinion, that these libraries are thread-safe, you can create an OTMQ multi-threaded server, but we do not support the use of JNI to call one of our libraries.  Why would you use JNI?  You can simply use the JCA/waiting for Message Queuing adapter.

    Kind regards

    Todd little

    Chief Architect of Oracle Tuxedo

  • is NamedCache thread-safe?

    Hello

    I use coherance NamedCache (say "TradeCache"), to store objects in the cache.

    My application is designed so that multiple threads can place data in "TradeCache" at the same time.

    What kind of thread safety, we need to take care of?

    Hi user 1696.

    With regard to your questions:

    (a) what kind of locking is used, is that they lock the entire map?
    (b) or basic locking key is made?

    Coherence use essential basic locking.

    (c) if by default all implementations are thread-safe, which is the use of namedcache.lock () api

    NamedCache.lock () is provided so that applications that make use of coherence can have some control over several readers and/or authors using the same object in space of the application. This is not to prevent corruption in the cache store. It must provide a way for applications to control the race as conditions have several operations on the same object at the same time. So that the application can control which of the puts should occur for example.

    Can you please me to any document (short & concise) cohernace good.

    You can find pointers to official documentation and white papers, among others to the OTN on Oracle coherence page following

    http://www.Oracle.com/technology/products/coherence/coherence_suite.html

    and there is also a wealth of information on the site of the Oracle coherence Knowledge Base at:

    http://coherence.Oracle.com

    In regards to your 2nd question about 2 java clients using the same NamedCache and do put and remove operations, you can provide more details on your example? Java clients 2 performing put or remove on the same object or different objects?

    Patrick

    Published by: P Fry on April 30, 2010 12:09

  • SimpleParser consistency class is not thread-safe?

    Coherense has the utility class to XML very convinent which we use it a lot in our coherence-related applications.

    But meet us some lock mysterious question (dead end, maybe?) and have identified that it would be that the com.tangosol.run.xml.SimpleParser class is not thread-safe.

    We use tomcat 6 and Spring 2.0.6.

    Application Web has 2 bean that implements the InitializingBean interface.

    Bean A afterPropertiesSet() method will use com.tangosol.run.xml.XmlHelper.loadXml method to parse a XML file.
    Method of Bean B afterPropertiesSet() will acts as a tcp expand clients and retrieve data from a cluster of coherence. Which, I think, consistency will also use XML class useful during parsing of the configuration files.

    We meet randomly blocking of tomcat (which never end starting webapp deployment alternation) as 1 on 2 or 3 tests.

    Use of jconsole and tomcat connection we can see that the main thread stuck in the class SimpleParser. Here's the thread dump.

    Name: main
    State: EXECUTABLE
    Blocked in total: 156 Total expected: 0

    *************************************************************************************************

    Stack trace:
    com.tangosol.run.xml.SimpleParser.instantiateDocument(SimpleParser.java:150)
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:115)
    -locking com.tangosol.run.xml.SimpleParser@f10c77
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:71)
    com.tangosol.run.xml.SimpleParser.parseXml(SimpleParser.java:84)
    com.tangosol.run.xml.XmlHelper.loadXml(XmlHelper.java:109)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
    org.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:251)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
    -locking java.util.concurrent.ConcurrentHashMap@dee55c
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
    -locking java.lang.Object@d21555
    org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
    org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
    org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
    org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
    org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
    -locking org.apache.catalina.core.StandardContext@1c64ed8
    org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    -locking java.util.HashMap@76a6d9
    org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:825)
    org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:714)
    org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
    org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
    org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    -locking org.apache.catalina.core.StandardHost@1c42c4b
    org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    -locking org.apache.catalina.core.StandardHost@1c42c4b
    org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    -locking org.apache.catalina.core.StandardEngine@37fd24
    org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    org.apache.catalina.core.StandardService.start(StandardService.java:516)
    -locking org.apache.catalina.core.StandardEngine@37fd24
    org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    -locked [Lorg.apache.catalina.Service;@1cc55fb
    org.apache.catalina.startup.Catalina.start(Catalina.java:566)
    sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke (unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke (unknown Source)
    java.lang.reflect.Method.invoke (unknown Source)
    org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:413)

    *************************************************************************************************

    After we have add the tag is based on applying bean B wait on A bean to complete initialization, we encounter is no longer blocked when starting tomcat.

    We suspect that maybe SimpleParser class is not thread-safe and will cause potential deadlock issue.

    Published by: user639604 on June 22, 2009 10:36

    It seems that the 'hand' thread comes to the point that he is responsible for the class of SimpleDocument around the same time as the thread "Timer-0"comes to the point where he is in charge of the class ExternalizableHelper. According to what son get on-demand, if the loading of the class ExternalizableHelper happens point of needing to SimpleDocument after the main thread starts to load SimpleDocument, then a deadlock (inside the JVM loading infrastructure class) happen.

    While you are correct that it is our fault (we shouldn't have used a subset of the ExternalizableHelper static initializer), there is probably a simple solution; Just do the following in an initializer static for your first loads or the classes related to the coherence, for example ClusterConfigurator and OPCacheManager:

    static
      {
      // this should force the ExternalizableHelper class to be loaded
      ExternalizableHelper.makeTrint(0L);
      }
    

    Peace,

    Cameron Purdy | The Oracle coherence

  • Session Bean vs Entity Bean?

    We have a contractor who joined us recently. He is our specialist in the ADF. We don't know much about ADF. He said the layer of data model in the ADF, he must choose between the session beans and entity beans. I am especially ignorant of these things and their implications. I come to know objects entity and visualization of objects from access DB. Can someone give me an idea of what these are? Why not just create entity objects and some objects view and link as I always see in the tutorials? I would ask him, but I'm eager to check what it says of a 3rd party because it seems that it may be misleading us.

    He wants to use Java Beans EJB (Enterprise), while you tell the ADF business components

    Entity Beans

    What is an entity bean?

    https://blogs.Oracle.com/Shay/entry/adf_business_components_or_top

  • Firefox opens, and neither does Profile Manager

    So yesterday some site to search Google (Kilauea photos search string) done something wacky, and now Firefox 4.0.1 will not start. Safe mode does not start. Profile Manager does not either. Uninstalling Firefox, by removing the Firefox of Program files, running a registry cleaner to clean the remnants of Firefox, running a full MS Security Essentials scan who find Trojans villain, and then reinstalling Firefox works only for the initial session. A replay of Security Essentials and a race with IObit Malware Fighter is nothing. Once I got close and restart, same as at the beginning. Internet Explorer 8 and Firefox 3.7a5pre minefield version seem to work normally, other mines fails to remember the passwords even if it is checked. Any ideas on what to try?

    Beta version 5.0 is not really get updates of security by saying as with point versions minor for 3.6. * for example. The 5.0 Beta recent 5 (which will be soon in Beta 6, may even be a b7) could be even more up-to-date then 3.6.17 and 4.0.1 even in a sense. Unlike with the latest versions with release candidate RC for the exit, the last last beta deemed good will become final.

  • Need help with event handler Code - does in Manager event Manager

    Hello

    Here is the code snippet that I use to create an event handler:

    ///////////////////////////////////////////////////////////////


    package com.oracle.events;

    import com.thortech.util.logging.Logger;
    import com.thortech.xl.client.events.tcBaseEvent;
    import com.thortech.xl.dataobj.tcDataObj;
    import com.thortech.xl.util.logging.LoggerModules;

    public class tcCheckOvrallProvStatusUDFs extends tcBaseEvent
    {
    private static Logger logger = Logger.getLogger (LoggerModules.XL_JAVA_CLIENT);

    public tcCheckOvrallProvStatusUDFs()
    {
    setEventName ("generation tcCheckOvrallProvStatusUDFs");
    }

    /**
    * @Override
    * @throws exception
    */

    protected void implementation() throws Exception {}
    data tcDataObj = getDataObject();

    String OIDProvStatus = data.getString ("usr_udf_oidusrprovstatus");
    String EBSProvStatus = data.getString ("usr_udf_ebstcausrprovstatus");

    If (OIDProvStatus.equals ("Provisioned") & & EBSProvStatus.equals ("Provisioned")) {}
    setOverAllProvStatus (data);
    }
    }

    /***
    *
    @param data
    * @throws exception
    */
    Private Sub setOverAllProvStatus(tcDataObj data) throws Exception
    {
    data.setString ("usr_udf_ovrrscprovstatus", "put into service");
    }

    }

    ///////////////////////////////////////////////////////////////



    Its a simple code that I use to fill the value of a UDF field according to the value of the remaining 2 fields. I want to trigger the events it after insertion and subsequent update.
    But even if I restart the server of the IOM after having placed the file compiled successfully (0 error, 0 warnings) in the EventHandlers's OIM_HOME folder. It does not appear in the Console Design-> developer tools-> definition of business-> event Manager Manager rule. :( I need this file appears in the search for adapters/event handlers to create an event handler. This JAR file doesn't show up there.

    Is there something missing in the code?
    What else must be specified?

    Please provide some guidance.

    Thank you
    -jhb.

    Create a variable username you adapter, go to the list of Variable in the adapter and click Add. Do set during execution.

    Once the adapter of the entity is created and you put this device in the data object manager ==>.click on Attach pre users insert and save.

    Go to the tab cards card, here, you can select your adapter and double click on the variable User ID and map it to entity field - USR_LOGIN.

    Thank you
    Suren

Maybe you are looking for

  • Safari does not open youtube

    Hello Can't do youtube to open in safari. It started about 5 days ago and safari says that it is impossible to connect to the server. I can load youtube in chrome very well. If I disconnect and reconnect to the wifi safari load youtube for a few minu

  • Update Firefox 16 prevents by typing in the search box

    I had Firefox 15.1.1 on my netbook and found that when I click on the search bar, the cursor would move toward the front of the word Google and not allow me to type anything in. Reinstall from scratch has not helped. I put it down to a conflict with

  • Satellite Pro P300-19 q - cannot start with a new memory

    So, I want to add 2 GB of RAM to 2 GB existing. I use Windows 7 64-bit. In the BIOS, I see 4 GB of memory, but windows won't start. When removing the old memory and leaving the new, the computer isn't even strats. Some info:Old memory - Samsung M4 70

  • Controls and libraries

    Hello I use a library for an instrument of control. This library appears on my addictions, but not displayed in my controls/palette, how can I have different controls of my library in my palette? why there not automaticlly? I lost at least an hour of

  • GTA v will not start!

    Hi guys I live in qatar and in my name is smart and I downloaded gta v for my xbox 360 today and when it's over, I started it and then it showed an error that it could not start.please help me with this problem. Thank you