cancel
Showing results for 
Search instead for 
Did you mean: 

Sybase/SAP Replication server WARMSTANDBY Configuration commands

abdoragheb
Explorer
0 Kudos

Dear All,

I have a WARM STANDBY environment, with a DB level MSA (using db repdef and dbsubdef), hanging off the logical WS connection.

PRIMARY server - PRIMSRV

Replicate Destination Server - ASEREP

physical and logical dbname - balance

Logical connection Name - PRIMLDS

Queue Number - 109,1 (Inbound queue)

Question - So to change repagent user related configurations like below -

exec_prs_num_threads , cmd_direct_replicate , exec_nrm_request_limit , exec_cmds_per_timeslice , exec_sqm_write_request_limit

Should i alter connection to PRIMSRV.balance or Should i alter connection to ASEREP.balance ??

Similarly, for SQM writer parameters tuning (init_sqm_write_delay, init_sqm_write_max_delay ) and SQM reader parameter tuning (sqt_init_read_delay, sqt_max_read_delay) should i tune PRIMSRV.balance or ASEREP.balance ?

Also for DIST thread configs (md_sqm_write_request_limit,sts_cachesize,dist_direct_cache_read, dist_cmd_direct_replicate) do we generally tune the sourceds or destinationds ?

Finally also for all the related DSI parameters. For DSI, i am pretty certain that it would be ASEREP.balance (incl. for dsi_sqt_max_cache_size etc.). However please confirm, again

Note - We already have ASO license. Also, i know that in WarmStandby side, it is better to make changes at both end, considering switch factor. However say you can ignore the switch and please answer accordingly.

regards,

Abdo

abdoragheb
Explorer
0 Kudos

Hello Mark,

Indeed, i am interested in limiting my parameter setting, to only 1 side for now and i want to alter only connection parameters against doing it at whole server level (let's say ignoring the switch active).

And yes - admin who,dsi, clearly shows that the DSI level settings should be for ReplicateDS.database.

However as in Warm standby, the SQM (Inbound queue) & DIST (since we have another connection hanging of LOGICAL DS), shows activity against logical connection.

Hence if i have to tune just repagent user thread configs (keeping in mind, limiting my configs to only one side for now) like exec_cmds_per_timeslice or exec_nrm_request_limit, should we alter connection to PRIMARYDS.db ?

Similarly for config's like cmd_direct_replicate, i believe this should be set for primary connection (ignoring switch factor). Plz confirm.

regards,

Abdo

Mark_A_Parsons
Contributor

If the WS active db is currently PRIMARYDS.db then, yes, you'd set inbound/repagent related configs for the PRIMARYDS.db connection. admin who should only show name = 'REP AGENT' for one of the WS db's so that would be the db you set inbound/repagent configs for.

As for cmd_direct_replicate ... this is applied against the executor thread to direct it to send parsed data to the DIST thread so, yes, you'd apply this against the connection associated with incoming data (ie, the connection where admin who / name = 'REP AGENT').

Most of the config parameters are designed to be applied against either a physical or logical connection. Trying to set a 'physical' parameter against a logical connection will generate an error, eg:

1> alter logical connection to LDS.ws_test_db set cmd_direct_replicate to 'on'
2> go
Msg 15278, Level 12, State 0:
Server 'RS200':
Option of cmd_direct_replicate can only be used for configure connection command.<br>

NOTE: While the error message only mentions the configure connection command, the message would also apply to the alter connection command (key point is that both of these commands are for physical connections)

Net result being that if you're not sure which connection (physical vs logical) to apply a parameter to, chances are pretty good SRS will only allow one (physical or logical) so ... When in doubt, try it out!

abdoragheb
Explorer
0 Kudos

Thank you very much, for the clear and concise explanation.

regards,

Abdo.

Accepted Solutions (0)

Answers (1)

Answers (1)

sladebe
Active Participant

If you want a parameter setting to take effect for the whole repserver you can use the command configure replication server set [param] to '[value]' If you just want to modify a specific connection you would use alter connection to [db_server].[db] set [param] to [value] where [db_server] and [db] are the physical names (eg. PRIMSRV, ASEREP, balance). Use "admin config" to look at parameter settings.

Also, if memory_control is set to "smart" (the default), the repserver silently ignores your settings for the following parameters:

ci_pool_size ci_packet_size ci_max_cmds cap_sqm_write_request_limit cap_sqm_write_msg_limit sqm_cache_size sqm_cmd_cache_size sqt_max_cache_size sqt_max_prs_size spq_cache_size dsi_sqt_max_cache_size dist_sqt_max_cache_size md_sqm_write_request_limit

https://answers.sap.com/questions/696095/new-fancy-smart-memory-control-ignore-admin-config.html

https://influence.sap.com/sap/ino/#/idea/232062

With smart memory control, you use the mem_distribution_* settings to control certain memory allocations.

abdoragheb
Explorer
0 Kudos

Hello Ben,

Thanks for additional info. We are on SRS 15.7.1 SP 203, so smart memory allocation is not available. Let me re-phrase my question.

I simply want to know, if i have to change repagent user thread confgs, should i change primaryds.db connections or replicateds.db connection ?

I have the same questions for sqm configs (sqm_page_size, cmd_direct_replicate etc. ). In all this case it should be primaryds connection or replicate ds connection ?

Similarly all dist config's (ex. dist_direct_cache_read), etc .. since dist is thought of as part of inbound queue (at least in WS), so here also all changes will be done for primaryds.db ?

Lastly for all dsi related configs ( dsi_max_cmds_in_batch etc.), the changes should be for replicateds.db. Please confirm.

regards,

Abdo.