cancel
Showing results for 
Search instead for 
Did you mean: 

DB connect problem,Disp+Work.exe dies and the work processes die on startup

Former Member
0 Kudos

Dear Experts,

I am getting the error on SAP startup,Disp+Work.exe dies and the work processes die on startup.

I found below error in my DEV_W0 trace as below

*failed to establish conn to np:(local).*

*C Retrying without protocol specifier: (local)*

*C Provider SQLNCLI could not be initialized. See note #734034 for more information.*

*C Using provider SQLOLEDB instead.*

*C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']*

*C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.*

*C Procname: [ExecuteAndFlush - no proc]*

But i could see the user 'pec' is availble in my database users list with db_owner , public permissions also been assigned to it.

However When trying to delete a user on SQL server 2000, we recieve the message "You cannot drop the selected login ID because that login ID owns objects in one or more databases.".

Please refer the below work process trace and please suggest the possible solution..

-


trc file: "dev_w0", trc level: 1, release: "640"

-


*

  • ACTIVE TRACE LEVEL 1

  • ACTIVE TRACE COMPONENTS all, M

*

B

B Sat Feb 14 15:10:21 2009

B create_con (con_name=R/3)

B Loading DB library 'E:\usr\sap\PEC\SYS\exe\run\dbmssslib.dll' ...

B Library 'E:\usr\sap\PEC\SYS\exe\run\dbmssslib.dll' loaded

B Version of 'E:\usr\sap\PEC\SYS\exe\run\dbmssslib.dll' is "640.00", patchlevel (0.195)

B New connection 0 created

M sysno 00

M sid PEC

M systemid 560 (PC with Windows NT)

M relno 6400

M patchlevel 0

M patchno 196

M intno 20020600

M make: multithreaded, Unicode

M pid 3844

M

M ***LOG Q0Q=> tskh_init, WPStart (Workproc 0 3844) [dpxxdisp.c 1162]

I MtxInit: -2 0 0

M DpSysAdmExtCreate: ABAP is active

M DpShMCreate: sizeof(wp_adm) 21120 (1320)

M DpShMCreate: sizeof(tm_adm) 29558776 (14772)

M DpShMCreate: sizeof(wp_ca_adm) 24000 (80)

M DpShMCreate: sizeof(appc_ca_adm) 8000 (80)

M DpShMCreate: sizeof(comm_adm) 1160000 (580)

M DpShMCreate: sizeof(vmc_adm) 0 (424)

M DpShMCreate: sizeof(wall_adm) (384056/329560/64/184)

M DpShMCreate: SHM_DP_ADM_KEY (addr: 07800040, size: 31492672)

M DpShMCreate: allocated sys_adm at 07800040

M DpShMCreate: allocated wp_adm at 07801B88

M DpShMCreate: allocated tm_adm_list at 07806E08

M DpShMCreate: allocated tm_adm at 07806E30

M DpShMCreate: allocated wp_ca_adm at 09437628

M DpShMCreate: allocated appc_ca_adm at 0943D3E8

M DpShMCreate: allocated comm_adm_list at 0943F328

M DpShMCreate: allocated comm_adm at 0943F340

M DpShMCreate: allocated vmc_adm_list at 0955A680

M DpShMCreate: system runs without vmc_adm

M DpShMCreate: allocated ca_info at 0955A6A8

M DpShMCreate: allocated wall_adm at 0955A6B0

X EmInit: MmSetImplementation( 2 ).

X <ES> client 0 initializing ....

X Using implementation flat

M <EsNT> Memory Reset disabled as NT default

X ES initialized.

M

M Sat Feb 14 15:10:22 2009

M calling db_connect ...

C Thread ID:3868

C Thank You for using the SLOLEDB-interface

C Using dynamic link library 'E:\usr\sap\PEC\SYS\exe\run\dbmssslib.dll'

C dbmssslib.dll patch info

C patchlevel 0

C patchno 195

C patchcomment DBCON: database names must not start with digits (1078650)

C np:(local) connection used on CAMBSVR15

C CopyLocalParameters: dbuser is 'pec'

C

C Sat Feb 14 15:10:23 2009

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C OpenOledbConnection: MARS property was not set.

C

C Sat Feb 14 15:10:26 2009

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C failed to establish conn to np:(local).

C Retrying without protocol specifier: (local)

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C Provider SQLNCLI could not be initialized. See note #734034 for more information.

C Using provider SQLOLEDB instead.

C ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

C setuser 'pec' failed -- connect terminated

C failed to establish conn. 0

B ***LOG BY2=> sql error 0 performing CON [dbsh#3 @ 1204] [dbsh 1204 ]

B ***LOG BY0=> <message text not available> [dbsh#3 @ 1204] [dbsh 1204 ]

B ***LOG BY2=> sql error 0 performing CON [dblink#3 @ 428] [dblink 0428 ]

B ***LOG BY0=> <message text not available> [dblink#3 @ 428] [dblink 0428 ]

M ***LOG R19=> tskh_init, db_connect ( DB-Connect 000256) [thxxhead.c 1280]

M in_ThErrHandle: 1

M *** ERROR => tskh_init: db_connect (step 1, th_errno 13, action 3, level 1) [thxxhead.c 9621]

M

M Info for wp 0

M

M stat = 4

M reqtype = 1

M act_reqtype = -1

M rq_info = 0

M tid = -1

M mode = 255

M len = -1

M rq_id = 65535

M rq_source = 255

M last_tid = 0

M last_mode = 0

M int_checked_resource(RFC) = 0

M ext_checked_resource(RFC) = 0

M int_checked_resource(HTTP) = 0

M ext_checked_resource(HTTP) = 0

M report = > <

M action = 0

M tab_name = > <

M

M *****************************************************************************

M *

M * LOCATION SAP-Server cambsvr15_PEC_00 on host cambsvr15 (wp 0)

M * ERROR tskh_init: db_connect

M *

M * TIME Sat Feb 14 15:10:26 2009

M * RELEASE 640

M * COMPONENT Taskhandler

M * VERSION 1

M * RC 13

M * MODULE thxxhead.c

M * LINE 9806

M * COUNTER 1

M *

M *****************************************************************************

M

M PfStatDisconnect: disconnect statistics

M Entering TH_CALLHOOKS

M ThCallHooks: call hook >ThrSaveSPAFields< for event BEFORE_DUMP

M *** ERROR => ThrSaveSPAFields: no valid thr_wpadm [thxxrun1.c 730]

M *** ERROR => ThCallHooks: event handler ThrSaveSPAFields for event BEFORE_DUMP failed [thxxtool3.c 254]

M Entering ThSetStatError

M Entering ThReadDetachMode

M call ThrShutDown (1)...

M ***LOG Q02=> wp_halt, WPStop (Workproc 0 3844) [dpnttool.c 357]

I would greatly appriciate your quick response, Since it is a production issue.

Many Thanks,

Vinod

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos
Former Member
0 Kudos

Hi Rohit and Subha,

Can you please expalain what the problem was? what i need to install ? what OLEDB does extactly ? and just to add , we are running on SQL 2000 server with SAP ECC 5.0.

As part of weekly maintainance, We have restarted the server and after that couldn't start the MMC and found that work process getting end when sap start and dispatcher dies after a while

I see that error in developer trace as mentioned in post. i have refered the note before i post this query but couldn't figured out wht to do on my issue.

I just found the inforamtion as below

For SQL 2000 users:

The new provider can be used as a client for SQL 2000 systems as long as the SQLNCLI version is SQL2005 SP1 or later. Do not use the RTM version because some errors were discovered which are fixed in SP1.

Please help me to fix this.

Many thanks,

Vinod

Former Member
0 Kudos

Hello Vinod,

You will need to install Microsoft SQL Server Native Client (sqlncli.msi) with the link that I have given to you above.This is what it means:

"Microsoft SQL Server Native Client (SQL Native Client) is a single dynamic-link library (DLL) containing both the SQL OLE DB provider and SQL ODBC driver. It contains run-time support for applications using native-code APIs (ODBC, OLE DB and ADO) to connect to Microsoft SQL Server 7.0, 2000 or 2005. SQL Native Client should be used to create new applications or enhance existing applications that need to take advantage of new SQL Server 2005 features. This redistributable installer for SQL Native Client installs the client components needed during run time to take advantage of new SQL Server 2005 features, and optionally installs the header files needed to develop an application that uses the SQL Native Client API.:

Tell Me one thing have u made any config.changes since this has happened just after reboot.

Rohit

Former Member
0 Kudos

OLE DB is a standard application programming interface (API) developed by Microsoft. It is a component of Microsoftu2019s Data Access Components software. OLE DB allows an application to access a variety of data for which OLE DB data providers exist like SQL Server.

It looks like your oledb.dll file has been corrupted or deleted. Check the dll file in

%windir%\ServicePackFiles\

%programfilescommon%\System\Ole DB

Rgds,

SK.

Former Member
0 Kudos

Hi Rohit,

Thanks for your quick response, We have not made any config changes on database this just happend after i rebooted the server.

one more thing i would like to point out, The error log says there is no user name or group 'pec' but i could see the user available with required permissions set(DB_owner , public )...any idea why this is saying that no such iser or group 'pec'.

ExecuteAndFlush return code: 0x80040e14 Stmt: [if user_name() != 'pec' setuser 'pec']

C sloledb.cpp [ExecuteAndFlush,line 5989]: Error/Message: (err 4604, sev 0), There is no such user or group 'pec'.

C Procname: [ExecuteAndFlush - no proc]

I wil check the link which you mentioned in your earliest post and let you know the result, Mean while please let me know if have any ideas regarding that " Error 4604, sev 0) there is no such user or group 'pec'

Many Thanks,

Vinod

Former Member
0 Kudos

I would suggest you to go with the installation of the file first

but there is a strong possibilty of corruption of some dll files,was there any issues while rebooting the system,this is strange!!!1

Rohit

Former Member
0 Kudos

This error is usually the result of the database user not being associated with the login user for the SQL server.

Resolving the problem

Run the following command to check if there are any users in the database that have not been associated :

sp_change_users_login 'Report'

Once you see the users listed, run the following command for each user to associate the database user with the SQL login user.

sp_change_users_login 'Update_One','<user>','<login>'

Former Member
0 Kudos

Hey

just tell me had u performed any type of DB restore lately or any major activites related to DB

There has to be something as this error can't come suddenly

Rohit

Former Member
0 Kudos

Yes Rohit,

We have a DR setup like failover instance which is configured with same <SID> Ex- pec, Diff hostname and log shipping has configured like from Primary instance to Failover instance @ frequency of 20 mins.

Since the primary instance was down we made the failover instance up and given to client to run on fialover instance temporarily till we fix the problem on primary instance.

Before this error arroused, We had some other problem with starting sap server , inorder to fix that we had performed a OS level restore and we did a full Db restore .

However we could managed to resolved that issue and to sync with failover instance we had performed a DB rstore of failover to primary ,unfortunately after that we have encountered with this new issue.

Sorry if i confuse you guys,

Thanks & Regards,

Vinod

Former Member
0 Kudos

Vinod,

That sounds really confusing

But I would suggest you to go with note 551915

This will help u surely

Rohit

Former Member
0 Kudos

Hi Subhadip,

I have executed the command sp_change_users_login 'Report' but i couldn't find any users in the database that have not been associated.

0- rows selected , command completed sucessfully.

Many Thanks,

Vinod

Former Member
0 Kudos

did u go through note 551915,it talks of us issue during database copy

Rohit

Former Member
0 Kudos

Yes Rohit,

I have already gone thorugh that note # 734034 before i post this query. that note is talking about if the sourse system in non-Mcod and target is Mcod but our case, we are nunning both on NON-Mcod.

As suggested by some DBA, When i'm trying to delete database user 'pec' i'm getting the errors like "You cannot drop the selected login ID because that login ID owns objects in one or more databases." since we are getting error as no user or group by name of 'pec' in work process tarce we are thinking that which might have caused all this.

so we have created an another user like PEC1 and tried to assign all the object which has already been assigned to user PEC. my ques is do we have any kind of script which can automate this activity like we found some 1 lack more objects were assigned to user 'pec' i.e) we need to assign all of them to new user 'pec1'

Looking forward your feedback...

Thanks & Regards,

Vinod

Former Member
0 Kudos

U sounds confusing...I didn't understand what you are trying to do..Did u have any system called "PEC"? If not why did u create such userid and what schema objects are there inside it?

For Non-MCOD system all SAP schema objects should reside under "dbo" schema and in MCOD it is "<SID>" schema.

I don't know how come "PEC1" will help you as SID can't be 4 letter.

Rgds,

SK

Former Member
0 Kudos

You can use SAP Tools to change the Non-MCOD system to MCOD system.

Rgds,

SK

Former Member
0 Kudos

Vinod why do u need to delete user PEC,PEC is ur SID and the user should not be deleted in any case

assigning PEC1 to all objects will not help as it is non-mcod system

on both databases check all the tables thro. SQL server agen,if their names start with PEC or dbo.this will tell us who is the owner of database but please dont delete the user PEC as it will not help

Situation does look very confusing

Rohit

Former Member
0 Kudos

Hello Vinod,

You have restored your system from failover system right?

first check who is the owner of failover system:sid or dbo?

Then in the primary instance, check who is the owner:dbo or sid

If there is difference you will need to change the owner of the database and might resolve your issue

Rohit

Former Member
0 Kudos

Hi Rohit,

My plan is to delete and recreate the user 'pec' for that i have created a user 'pec1' and i'm trying to change the owner of all objects which are already been owned by user 'pec' to 'pec1' (New user) before i proceed.

What do you say? if i delete and recreate the same user 'pec' ,would it helps? awaiting for your reply.

Many Thanks,

Vinod

Former Member
0 Kudos

Not very sure about this,but have u checked the owner of the database in failover system and primary instance.

Rohit

Former Member
0 Kudos

Deleting and recreating is not a good choice.

If you messed up do a recovery again.

Former Member
0 Kudos

Hi Rohit and Subhadip,

My problem was solved, thanks for your effort.

reason is that, user 'pec' not been associated with login user for the SQL server.

subha : when i execute the first command which you suggested, but couldn't find any user's list.

so i didn't tried with the second command. just to give a final try i have executed the script like below and its worked out.

USE PEC

GO

EXEC sp_change_users_login 'update_one','pec','pec'

GO

Now i see that all work process are starting,,,thank you so much rohit and subhadip

I could have try this first ,when you guys suggested since i couldn't find any output with the first command i didn't proceed with second one.

Since deleting and creating method doesn't seems to be a good, i have just to give a try executed the second command and its worked.

Thanks for your time and patience

Many Thanks,

Vinod

Former Member
0 Kudos

Hi Rohit,

I am also facing the same problem & the solution you have proposed worked. Actually i was using the tool for DB upgrade. Thanks for the solution.

Regards

Gaganam

Former Member
0 Kudos

Hi Gurus

Even i faced same issue and it worked.

Now i am able to login to the system but i am receiving abap dumps and when i run sick t-code it is showing an error as "severe error" please fix this and proceed.

Can any suggest on this what could be the critical error.

Thanks in advance.

Mohammed

Answers (3)

Answers (3)

Former Member
0 Kudos

Please refer to note 551915.This tells when the error that you have spcified above comes but this is applicable only if you copied your database or something like that

Rohit

Former Member
0 Kudos

See notes 734034.

Two solution has been provided in the notes.

Install the sql native provider on the application server(s) where these messages appear.

Use either the SQL 2005 SP1 or later installation CD or the website:

http://www.microsoft.com/downloads/

To install the SQLNCLI provider software.

To install from the SNAC client only (without any other tools), you

can run <CD_DRIVE>:\Setup\sqlncli.msi

Rgds,

SK

Former Member
0 Kudos

Please refer to note 734034

Rohit Goyal