Stateless SessionBean method returned without completing transaction

Alguém sabe o q pode ser este erro?

Ele aparece quando chamo o seguinte método:

    public void create(OrdemServico ordemServico) {
        try{
            transacao.begin();
                em.persist(ordemServico);
            transacao.commit();
        }catch(Exception e){ throw new EJBException(e);

        }
    }

java.rmi.RemoteException: Stateless SessionBean method returned without completing transaction
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: Stateless SessionBean method returned without completing transaction
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at br.eti.stifabricasw.sgrep.beans.__OrdemServicoFacadeRemote_Remote_DynamicStub.create(br/eti/stifabricasw/sgrep/beans/__OrdemServicoFacadeRemote_Remote_DynamicStub.java)
at br.eti.stifabricasw.sgrep.beans._OrdemServicoFacadeRemote_Wrapper.create(br/eti/stifabricasw/sgrep/beans/_OrdemServicoFacadeRemote_Wrapper.java)