Tag Archives: microsoft
Stream classic videos has been deleted and unable to access them from Team SharePoint site.
One of our DevOps SharePoint sites has multiple videos which were in stream classic and now we are unable to access those videos without receiving any notification (no email to the site owner as well).
Please help us to retrieve these videos as those are essential part of our site and not available anywhere else.
Thanks in advance.
One of our DevOps SharePoint sites has multiple videos which were in stream classic and now we are unable to access those videos without receiving any notification (no email to the site owner as well).
Please help us to retrieve these videos as those are essential part of our site and not available anywhere else.
Thanks in advance.
Read More
3 Ways to Effortlessly Embed YouTube channel on Website & Supercharge your Website
The secret of having a good web presence is having exciting content, and what can be more interesting than having a YouTube channel integrated into your website?
Think about a dynamic stream of interesting videos representing your field, services, products, or the story behind the brand embedded in the website. A brand needs to know how to embed YouTube channel on website effectively for maximum results.
Let us examine the intricacies of this strategy and how it benefits a brand in terms of marketing and ultimately, sales.
How do you embed a YouTube channel on the website?
You now know how awesome it is to have a YouTube channel embedded on your website, but how do you begin doing it? Let’s look at different ways to do it.
1. Tagembed for Embedding YouTube Channel in Website:
Tagembed offers a seamless process for embedding YouTube channels.
Just follow these simple steps:
Create a free account: Click on the link provided and create an account with Tagembed for free.
Choose “Social Widget”: Choose the “Social Widget” option to create the YouTube channel feed.
Pick Your Channel: From the options provided, select “YouTube” and click “Channel” to display your whole channel.
Search or Enter URL: You can search for the name of your YouTube channel by typing it in the search bar or typing the URL of your YouTube channel into the URL field.
Customize and Generate Code: Tagembed provides layout, size, and color scheme preferences that may be adjusted to the user’s preference. Once you are satisfied with the appearance, click on the ‘generate’ button to get the code for the embed.
Copy & Paste: The created embed code must be copied and inserted into the website’s back end.
Save the changes, and bang! You have now integrated your YouTube channel on your website.
Tagembed helps you embed your YouTube channel as simply and conveniently as possible.
2. Manually Embedding YouTube Channel on Website:
For those comfortable with a bit of code, YouTube offers a manual embedding option:
Step 1: Choose Your Video: Choose the video you want to embed in your website.
Step 2: Click “Share.”: Look for the “Share” button under the chosen video.
Step 3: Copy the Embed Code: Then click “Embed” and copy the generated code.
Step 4: Paste & Display: Copy the code and place it on the website’s back end where you wish to display the video. Click save, and the chosen YouTube video will be shown on your website!
While this method is simple, it has limitations:
One video at a time: Manual embedding involves using “embed” code for each video at a time, which is tedious for entire channels.
Limited customization: You have less control over the video’s look and feel here than when using a social media aggregator tool.
3. Through Plugins:
While using a Content Management System (CMS) like WordPress or Shopify, you can leverage dedicated plugins for YouTube embedding. Several third-party plugins like Tagembed can also help you embed YouTube channels on your CMS website. Research and choose one that best suits your needs and platform.
No matter your technical expertise, there’s a solution to embed your YouTube channel on your website and unlock its potential to boost website engagement!
Benefits of Embedding a YouTube Channel on a Website
Embedding a YouTube Channel on your website makes your online platform lively. Here’s how this strategy can supercharge your website:
Attention Grabber: Videos tend to grab the audience’s attention more than simple text. When you integrate your YouTube channel, you give your visitors something to do and watch, and they stay on your website and click for more.Credibility Booster: Use videos to present your brand’s message, advertise your products, or feature your specialists. This will make people more aware of your brand and position you as an expert. Laser-Targeted Traffic: Include playlists or videos related to your website’s content, products, and services. This will spark visitors’ interest and direct them to other parts of your website, thus bringing traffic to the right areas.Conversion machine: When you embed YouTube channel on website, product demonstrations, explainer videos, and customer testimonials become practical conversion tools. Education and sales videos are highly effective in increasing conversion.SEO: Videos are preferred over text in search results. Enhancing a site’s SEO performance and getting organic traffic from people interested in the video content uploaded to the channel is possible.Community Catalyst: Encourage the audience to click on the “like” and “subscribe” buttons on your YouTube channel from your website. This creates a social feel and engagement, which is good for your relations with the audience.
Conclusion
By now, it is pretty evident that embedding a YouTube channel on your website is a stroke of genius with many benefits. From capturing people’s attention with exciting videos to amassing an involved community, YouTube is a titan, and thus, Tagembed emerges as your best bet in this YouTube embedding process.
It has a user-friendly interface, can be customized, and delivers current information. However, with Tagembed, you get more than just the simple embedding option. You can get helpful information about the audience and enhance your content.
Suppose you are interested in transforming your simple website into an eye-catching one. Visit Tagembed right now and learn how YouTube and Tagemebed can improve your business.
The secret of having a good web presence is having exciting content, and what can be more interesting than having a YouTube channel integrated into your website?Think about a dynamic stream of interesting videos representing your field, services, products, or the story behind the brand embedded in the website. A brand needs to know how to embed YouTube channel on website effectively for maximum results. Let us examine the intricacies of this strategy and how it benefits a brand in terms of marketing and ultimately, sales. How do you embed a YouTube channel on the website?You now know how awesome it is to have a YouTube channel embedded on your website, but how do you begin doing it? Let’s look at different ways to do it. 1. Tagembed for Embedding YouTube Channel in Website:Tagembed offers a seamless process for embedding YouTube channels. Just follow these simple steps: Create a free account: Click on the link provided and create an account with Tagembed for free.Choose “Social Widget”: Choose the “Social Widget” option to create the YouTube channel feed. Pick Your Channel: From the options provided, select “YouTube” and click “Channel” to display your whole channel.Search or Enter URL: You can search for the name of your YouTube channel by typing it in the search bar or typing the URL of your YouTube channel into the URL field.Customize and Generate Code: Tagembed provides layout, size, and color scheme preferences that may be adjusted to the user’s preference. Once you are satisfied with the appearance, click on the ‘generate’ button to get the code for the embed.Copy & Paste: The created embed code must be copied and inserted into the website’s back end. Save the changes, and bang! You have now integrated your YouTube channel on your website.Tagembed helps you embed your YouTube channel as simply and conveniently as possible.2. Manually Embedding YouTube Channel on Website:For those comfortable with a bit of code, YouTube offers a manual embedding option: Step 1: Choose Your Video: Choose the video you want to embed in your website.Step 2: Click “Share.”: Look for the “Share” button under the chosen video.Step 3: Copy the Embed Code: Then click “Embed” and copy the generated code.Step 4: Paste & Display: Copy the code and place it on the website’s back end where you wish to display the video. Click save, and the chosen YouTube video will be shown on your website!While this method is simple, it has limitations:One video at a time: Manual embedding involves using “embed” code for each video at a time, which is tedious for entire channels.Limited customization: You have less control over the video’s look and feel here than when using a social media aggregator tool.3. Through Plugins:While using a Content Management System (CMS) like WordPress or Shopify, you can leverage dedicated plugins for YouTube embedding. Several third-party plugins like Tagembed can also help you embed YouTube channels on your CMS website. Research and choose one that best suits your needs and platform. No matter your technical expertise, there’s a solution to embed your YouTube channel on your website and unlock its potential to boost website engagement! Benefits of Embedding a YouTube Channel on a WebsiteEmbedding a YouTube Channel on your website makes your online platform lively. Here’s how this strategy can supercharge your website:Attention Grabber: Videos tend to grab the audience’s attention more than simple text. When you integrate your YouTube channel, you give your visitors something to do and watch, and they stay on your website and click for more.Credibility Booster: Use videos to present your brand’s message, advertise your products, or feature your specialists. This will make people more aware of your brand and position you as an expert. Laser-Targeted Traffic: Include playlists or videos related to your website’s content, products, and services. This will spark visitors’ interest and direct them to other parts of your website, thus bringing traffic to the right areas.Conversion machine: When you embed YouTube channel on website, product demonstrations, explainer videos, and customer testimonials become practical conversion tools. Education and sales videos are highly effective in increasing conversion.SEO: Videos are preferred over text in search results. Enhancing a site’s SEO performance and getting organic traffic from people interested in the video content uploaded to the channel is possible.Community Catalyst: Encourage the audience to click on the “like” and “subscribe” buttons on your YouTube channel from your website. This creates a social feel and engagement, which is good for your relations with the audience.ConclusionBy now, it is pretty evident that embedding a YouTube channel on your website is a stroke of genius with many benefits. From capturing people’s attention with exciting videos to amassing an involved community, YouTube is a titan, and thus, Tagembed emerges as your best bet in this YouTube embedding process. It has a user-friendly interface, can be customized, and delivers current information. However, with Tagembed, you get more than just the simple embedding option. You can get helpful information about the audience and enhance your content.Suppose you are interested in transforming your simple website into an eye-catching one. Visit Tagembed right now and learn how YouTube and Tagemebed can improve your business. Read More
Windows 11 single app kiosk disabling Wifi and Scanner
Hello,
I have installed a tablet with embedded scanner in Windows 11 and single app kiosk mode.
The kiosk mode is correctly applied but when I shutdown the tablet and power it up again, the Scanner and the Wifi are disabled.
I can plug the tablet to the wired network and the network card is perfectly fine.
Before the shutdown, I can restart the tablet and still be connected to the Wifi or use the scanner.
If I deactivate the kiosk mode and reboot the tablet, I get Wifi and Scanner back.
Where and how can I specify that the Wifi and Scanner need to still run when in kiosk mode ?
Thank you for your help.
Matthieu De Bonnaires
Hello, I have installed a tablet with embedded scanner in Windows 11 and single app kiosk mode.The kiosk mode is correctly applied but when I shutdown the tablet and power it up again, the Scanner and the Wifi are disabled.I can plug the tablet to the wired network and the network card is perfectly fine.Before the shutdown, I can restart the tablet and still be connected to the Wifi or use the scanner.If I deactivate the kiosk mode and reboot the tablet, I get Wifi and Scanner back. Where and how can I specify that the Wifi and Scanner need to still run when in kiosk mode ? Thank you for your help. Matthieu De Bonnaires Read More
July 2024 – OneDrive Opening in Browser
Hello Everybody
OneDrive (Office365 Family) on user computers are opening in browser. Are anybody else experiencing this problem?
Hello Everybody OneDrive (Office365 Family) on user computers are opening in browser. Are anybody else experiencing this problem? Read More
Need help to burn dmg to USB for making Mac bootable USB drive?
I bought an used MacBook Pro from eBay and there is no OS on it. I need to make a bootable USB for macOS in order to reinstall macOS on it. Unfortunately, I don’t have a Mac for doing this, which could be an easy task.
I heard this could be done on a Windows PC as well by burning dmg to USB but don’t know how to make a bootable USB from macOS dmg file. Currently, I am using a Windows 11 laptop. Pls help!
I bought an used MacBook Pro from eBay and there is no OS on it. I need to make a bootable USB for macOS in order to reinstall macOS on it. Unfortunately, I don’t have a Mac for doing this, which could be an easy task. I heard this could be done on a Windows PC as well by burning dmg to USB but don’t know how to make a bootable USB from macOS dmg file. Currently, I am using a Windows 11 laptop. Pls help! Read More
COUNTIF not working with arguments defined by LET function
I have a data table with key index as XXX_ID (Data!$A:$A), including a list of XXX IDs for each data rows, and there are repetitive IDs in the column as data in other columns are different.
I need the median for the list of how many times each unique XXX ID shows up in XXX_ID column, so I wrote =LET(filter,FILTER(Data!$A:$A,filter criteria),unique,UNIQUE(filter),count_times,COUNTIF(filter,unique),MEDIAN(count_times))
However, the COUNTIF(filter,unique) part returns error!
I tested filter and unique parts in separate columns, and use COUNTIF in the third column as COUNTIF(filter result data list, unique result data list), I get a correct result data list showing how many times each unique XXX ID shows up in the filter result data list.
I changed COUNTIF(filter,unique) to DROP(FREQUENCY(filter,unique),-1)
This time it works! Not sure if it is a bug with COUNTIF.
I have a data table with key index as XXX_ID (Data!$A:$A), including a list of XXX IDs for each data rows, and there are repetitive IDs in the column as data in other columns are different.I need the median for the list of how many times each unique XXX ID shows up in XXX_ID column, so I wrote =LET(filter,FILTER(Data!$A:$A,filter criteria),unique,UNIQUE(filter),count_times,COUNTIF(filter,unique),MEDIAN(count_times))However, the COUNTIF(filter,unique) part returns error! I tested filter and unique parts in separate columns, and use COUNTIF in the third column as COUNTIF(filter result data list, unique result data list), I get a correct result data list showing how many times each unique XXX ID shows up in the filter result data list. I changed COUNTIF(filter,unique) to DROP(FREQUENCY(filter,unique),-1)This time it works! Not sure if it is a bug with COUNTIF. Read More
“Failed to mount the Azure file share” looks like a false alarm?
Hi,
I have been using Azure and the Azure shell (Bash) on the Azure portal for nearly half a year.
Yesterday when I started the Azure shell, I got this warning message:
Warning: Failed to mount the Azure file share. Your cloud drive won’t be available.
Your Cloud Shell session will be ephemeral so no files or system changes will persist beyond your current session.
As far as I know, I never unmounted or changed any permission of the storage account to the clouddrive folder.
However, I found that my cloud drive (mounted to the clouddrive/ folder) was still accessible, and the files I created there could still be found when I started another Cloud Shell session.
I tried to reset my user settings and remount the same storage account to the clouddrive/ folder, and restarted the Bash Cloud Shell again. The warning message still appeared while the clouddrive/ could still be accessible.
So I wonder if the warning message was a false alarm, or if it referred to something else. May I ask if there is any command I can run to display the mounting log that resulted in the warning message, so I can check if it is really a false alarm?
Best Regards,
Benny (@evergrn_tree).
Hi, I have been using Azure and the Azure shell (Bash) on the Azure portal for nearly half a year. Yesterday when I started the Azure shell, I got this warning message: Warning: Failed to mount the Azure file share. Your cloud drive won’t be available.
Your Cloud Shell session will be ephemeral so no files or system changes will persist beyond your current session. As far as I know, I never unmounted or changed any permission of the storage account to the clouddrive folder. However, I found that my cloud drive (mounted to the clouddrive/ folder) was still accessible, and the files I created there could still be found when I started another Cloud Shell session. I tried to reset my user settings and remount the same storage account to the clouddrive/ folder, and restarted the Bash Cloud Shell again. The warning message still appeared while the clouddrive/ could still be accessible. So I wonder if the warning message was a false alarm, or if it referred to something else. May I ask if there is any command I can run to display the mounting log that resulted in the warning message, so I can check if it is really a false alarm? Best Regards,Benny (@evergrn_tree). Read More
windows 11 non-admin user IIS Pool access issue in local machine
By creating a non-admin user in Windows 11 home edition, I allowed him full control over inetsrv
%SystemRoot%System32inetsrv
folder, after logging in with this user and running this command from CMD
%SystemRoot%System32inetsrvappcmd list apppool /name:poolname/text:state
Results show : Unknown. But “poolname” is a pool running.
%SystemRoot%System32inetsrvappcmd start apppool /apppool.name:poolname
The result shows : “ERROR ( message:The WAS service is not available – try starting the service first. )”. But a “WAS” is running.
By creating a non-admin user in Windows 11 home edition, I allowed him full control over inetsrv %SystemRoot%System32inetsrvfolder, after logging in with this user and running this command from CMD%SystemRoot%System32inetsrvappcmd list apppool /name:poolname/text:stateResults show : Unknown. But “poolname” is a pool running.%SystemRoot%System32inetsrvappcmd start apppool /apppool.name:poolnameThe result shows : “ERROR ( message:The WAS service is not available – try starting the service first. )”. But a “WAS” is running. Read More
Microsoft Team Calendar wont let me book meetings
I have had a mare of a day, trying to sort out teams calendar. I have had no issued making appointments until yesterday, now it is saying ‘something went wrong’ unable to create meeting? Any help appreciated, I cannot work if it is not working
Thanks
I have had a mare of a day, trying to sort out teams calendar. I have had no issued making appointments until yesterday, now it is saying ‘something went wrong’ unable to create meeting? Any help appreciated, I cannot work if it is not working Thanks Read More
Effectively troubleshoot latency in SQL Server Transactional replication: Part 2
Let us continue our troubleshooting by checking threads in this part.
Step 4.1. Troubleshoot latency in Log Reader agent’s reader thread
Firstly, define the level of reader thread latency by running below query in Publisher server.
sp_replcounters
GO
The above shows reader thread replicating on average 115 transactions per second and more than 7.5mln transactions are waiting to be replicated to the distribution database. On average, transactions are waiting 134880secs to be replicated, which is high latency.
Run below in publisher server and find session id of Log Reader’ reader thread:SELECT
SessionId = s.session_id,
App = ISNULL(s.program_name, N”)
FROM sys.dm_exec_sessions s
WHERE s.program_name LIKE ‘%LogReader%’
Place the session id to the below Event session and create event session. Run the session for about 5mins:CREATE EVENT SESSION [LogReaderMonitor] ON SERVER
ADD EVENT sqlos.wait_completed(
ACTION(package0.callstack)
WHERE ([sqlserver].[session_id]=(123))), —Change session id here
ADD EVENT sqlos.wait_info_external(
ACTION(package0.callstack)
WHERE (([opcode]=(‘End’)) AND ([sqlserver].[session_id]=(123)))), —Change session id here
ADD EVENT sqlserver.rpc_completed(
ACTION(package0.callstack)
WHERE ([sqlserver].[session_id]=(123))) —Change session id here
ADD TARGET package0.event_file(SET filename=N’C:Templogreader_reader_track’,max_file_size=(256),max_rollover_files=(5))
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_MULTIPLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=OFF)
GO
Investigate the event file. For example, below you can confirm the activities with the same GUID with sequence ids. As you can see, initially, we are spending time for memory allocation and then sp_replcmds is finishing after 789 microseconds.
Note: duration of wait_info_external is in milliseconds while rpc_completed is in microseconds.
If wait time is high compared to CPU time, check wait type and troubleshoot accordingly. For example, on the above example we faced MEMORY_ALLOCATION_EXT wait_type but duration is 0. So, we are not waiting.
If CPU time is higher, this means log thread is running but latency is being observed because you have high load. High load can be caused by several causes:
Large batch of replicated transactions: large batch of transactions are the main cause of latency in reader thread performance. Check number of commands and transactions in agent statistics from verbose logs we obtained in Step 3.1.b. If the number of commands is significantly high compared to the number of transactions, it is possible that large transactions are being replicated. For example, as below:
If Reader Latency is caused by large number of pending commands, waiting for the Log Reader to catch up may be the best short-term solution. Long-term options include replicating batches during non-peak time.
Large number of non-replication transactions: A transaction log with a high percentage of non-replicated transaction will cause latency as the Log Reader scans over transaction to be ignored. You can check whether this problem exists by looking at Log Reader agent history we checked in Step 3.1.a. For example, in the below log reader history, we can see more than 5mln rows are being scanned but only 142 rows have been marked for replication.
In this case, ensure constant transaction log truncation and try to perform maintenance activities offline.
High number of VLFs: A large number of Virtual Log Files (VLFs) can contribute to long running read times. For the number of VLFs, execute the following command. Counts in 100K+ may be contributing to Log Reader Reader-Thread performance problems.
SELECT COUNT (DISTINCT vlf_sequence_number) FROM sys.dm_db_log_info ( PublisherDBID )
Step 4.2. Troubleshoot latency in Log Reader agent’s writer thread
By using log reader’s history log (refer to Step 3.1.a), you can get last transaction sequence number and delivery rate, latency information. If you do not observe latency in reader thread (Step 4.1), this means the latency rate is mainly by writer thread:
You can use below command to check transaction (xact_seqno) at where we are currently:
— Get publisher db id
USE distribution
GO
SELECT * FROM dbo.MSpublisher_databases
— Get commands we are at
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
GO
BEGIN TRAN
USE distribution
GO
EXEC Sp_browsereplcmds
@xact_seqno_start = ‘xact_seqno’,
@xact_seqno_end = ‘xact_seqno’,
@publisher_database_id = PUBLISHERDB_ID
COMMIT TRAN
GO
Run below in publisher server and find session id of Log Reader’ writer thread:
SELECT
SessionId = s.session_id,
App = ISNULL(s.program_name, N”)
FROM sys.dm_exec_sessions s
WHERE s.program_name LIKE ‘%LogReader%’
Check whether any blocking happening with this session:
sp_who2
Then run the below query in distributor server by changing the session id to log reader session id:
CREATE EVENT SESSION [logreader_writer_track] ON SERVER
ADD EVENT sqlos.wait_completed(
ACTION(package0.callstack)
WHERE ([sqlserver].[session_id]=(64))), — Change session id to log reader writer session id
ADD EVENT sqlos.wait_info_external(
ACTION(package0.callstack)
WHERE (([opcode]=(‘End’)) AND ([sqlserver].[session_id]=(64)))), — Change session id to log reader writer session id
ADD EVENT sqlserver.sp_statement_completed(
ACTION(package0.event_sequence,sqlserver.plan_handle,sqlserver.session_id,sqlserver.transaction_id)
WHERE ([sqlserver].[session_id]=(64))) — Change session id to log reader writer session id
ADD TARGET package0.event_file(SET filename=N’C:Templogreader_writer_track’,max_file_size=(256),max_rollover_files=(5))
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_MULTIPLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=OFF)
Investigate the collected event logs. For example, below you can confirm the activities with the same GUID with sequence ids. Each of this activity is writer threads attempt to write replication logs to distribution database. As you can see, we spent very little time (nearly 0) initially for MEMORY_ALLOCATION_EXT, then select statement is finishing after 39 microseconds.
Compare wait time (duration – cpu_time) and cpu_time. If wait time is high compared to CPU time, check wait_type and troubleshoot accordingly. For example, above we face MEMORY_ALLOCATION_EXT wait_type. If CPU time is high, you can investigate the execution plan by using corresponding plan_handle for time consuming query which you can get from above event logs:
SELECT * FROM sys.dm_exec_query_plan(PLAN_HANDLE)
Step 4.3. Troubleshoot latency in Distribution agent’s reader thread
To find the session id for Distribution agent, you need to find if it is a Push or Pull Subscription. In the case of push subscription, run below command in distributor server. In the case of Pull subscription, run below command in subscriber server.
SELECT
SessionId = s.session_id,
App = ISNULL(s.program_name, N”)
FROM sys.dm_exec_sessions s LEFT OUTER JOIN sys.dm_exec_connections c ON (s.session_id = c.session_id)
WHERE (select text from sys.dm_exec_sql_text(c.most_recent_sql_handle)) LIKE ‘%sp_MSget_repl_command%’
Check whether any blocking happening with this session:
sp_who2
Then run the below query in distributor server by changing the session id to distribution agent session id:
CREATE EVENT SESSION [distributor_writer_track] ON SERVER
ADD EVENT sqlos.wait_completed(
ACTION(package0.callstack)
WHERE ([sqlserver].[session_id]=(64))), — Change session id to dist agent session id
ADD EVENT sqlos.wait_info_external(
ACTION(package0.callstack)
WHERE (([opcode]=(‘End’)) AND ([sqlserver].[session_id]=(64)))), — Change session id to dist agent session id
ADD EVENT sqlserver.sp_statement_completed(
ACTION(package0.event_sequence,sqlserver.plan_handle,sqlserver.session_id,sqlserver.transaction_id)
WHERE ([sqlserver].[session_id]=(64))) — Change session id to dist agent session id
ADD TARGET package0.event_file(SET filename=N’C:Tempdistributor_reader_track’,max_file_size=(256),max_rollover_files=(5))
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_MULTIPLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=OFF)
Investigate the collected event logs. For example, below you can confirm the activities with the same GUID with sequence ids. Each of this activity is reader threads attempt to read replication logs. As you can see, we spent very little time (nearly 0) initially for MEMORY_ALLOCATION_EXT, then select statement is finishing after 29 microseconds.
Compare wait time (duration – cpu_time) and cpu_time. If wait time is high compared to CPU time, check wait_type and troubleshoot accordingly. For example, above we face MEMORY_ALLOCATION_EXT wait_type. If CPU time is high, you can investigate the execution plan by using corresponding plan_handle for time consuming query which you can get from above event logs:
SELECT * FROM sys.dm_exec_query_plan(PLAN_HANDLE)
High CPU time can often mean there is a high load which can be caused by large batch of replicated transactions. You can compare the number of commands and transactions by using the below query.
SELECT count(c.xact_seqno) as CommandCount, count(DISTINCT t.xact_seqno) as TransactionCount
FROM MSrepl_commands c with (nolock)
LEFT JOIN msrepl_transactions t with (nolock)
on t.publisher_database_id = c.publisher_database_id and t.xact_seqno = c.xact_seqno
WHERE c.publisher_database_id = 1 –Change to target database id here
For the past days’ statistics, you can leverage below command:
USE distribution
select t.publisher_database_id, t.xact_seqno,
max(t.entry_time) as EntryTime, count(c.xact_seqno) as
CommandCount, count(DISTINCT t.xact_seqno) as TransactionCount
into #results
FROM MSrepl_commands c with (nolock)
LEFT JOIN msrepl_transactions t with (nolock)
on t.publisher_database_id = c.publisher_database_id
and t.xact_seqno = c.xact_seqno
GROUP BY t.publisher_database_id, t.xact_seqno
SELECT publisher_database_id
,datepart(year, EntryTime) as Year
,datepart(month, EntryTime) as Month
,datepart(day, EntryTime) as Day
,datepart(hh, EntryTime) as Hour
,sum(CommandCount) as CommandCountPerTimeUnit
,sum(TransactionCount) as TransactionCountPerTimeUnit
FROM #results
GROUP BY publisher_database_id
,datepart(year, EntryTime)
,datepart(month, EntryTime)
,datepart(day, EntryTime)
,datepart(hh, EntryTime)
ORDER BY publisher_database_id, Month, Day, Hour
As you see, I am executing one command per transaction making TransactionCount nearly equal to CommandCount.
Step 4.4. Troubleshoot latency in Distribution agent’s writer thread
Find the session id and App name for Distribution agent by inserting your publication name to WHERE clause below:
SELECT
SessionId = s.session_id,
App = ISNULL(s.program_name, N”)
FROM sys.dm_exec_sessions s
WHERE s.program_name LIKE ‘%publish%’
GO
Check whether there is blocking for the above session id(s):
sp_who2
Create event session by inserting app name:
CREATE EVENT SESSION [distributor_writer_track] ON SERVER
ADD EVENT sqlos.wait_completed(
ACTION(package0.callstack,sqlserver.session_id,sqlserver.sql_text)
WHERE ([sqlserver].[client_app_name]=N’SQLVM4-TRANSACR_AdventureWorksLT_test_table_pub’ AND [package0].[greater_than_uint64]([duration],(0)))),
ADD EVENT sqlos.wait_info_external(
ACTION(package0.callstack,sqlserver.session_id,sqlserver.sql_text)
WHERE ([sqlserver].[client_app_name]=N’SQLVM4-TRANSACR_AdventureWorksLT_test_table_pub’ AND [package0].[greater_than_uint64]([duration],(0)))),
ADD EVENT sqlserver.sp_statement_completed(
ACTION(package0.event_sequence,sqlserver.plan_handle,sqlserver.session_id,sqlserver.transaction_id)
WHERE ([sqlserver].[client_app_name]=N’SQLVM4-TRANSACR_AdventureWorksLT_test_table_pub’))
ADD TARGET package0.event_file(SET filename=N’C:Tempdistributor_writer_track’,max_file_size=(5),max_rollover_files=(5))
WITH (MAX_MEMORY=8192 KB,EVENT_RETENTION_MODE=ALLOW_MULTIPLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=ON,STARTUP_STATE=OFF)
GO
Investigate the collected event logs. For example, below you can confirm the activities with the same GUID with sequence ids as statement levels. Can you find any high duration at any of the statements?
Compare wait time (duration – cpu_time) and cpu_time. If wait time is high compared to CPU time, check wait_type and troubleshoot accordingly. For example, above we face NETWORK_IO wait_type. If CPU time is high, you can investigate the execution plan by using corresponding plan_handle for time consuming query which you can get from above event logs:
SELECT * FROM sys.dm_exec_query_plan(PLAN_HANDLE)
Supervisor: Collin Benkler, Sr EE for SQL Server in Microsoft
Microsoft Tech Community – Latest Blogs –Read More
Use COUNTIFS and INDEX/MATCH to pull data from another table
Hi.
I have two tables, one with information (Attendance Sheet) and one where I need to pull information into (Info sheet). I have attached screenshots of both tables.
I would like to count how many athletes are in each Council LGA for each Term (does not need to be specified by each week), based off the value of LGA in the Info Sheet. I would then like to count how many athletes from each council area attended in each week and each term. I have tried many countifs and index/match functions to no avail. Any help would be appreciated. Thank you.
Hi. I have two tables, one with information (Attendance Sheet) and one where I need to pull information into (Info sheet). I have attached screenshots of both tables. I would like to count how many athletes are in each Council LGA for each Term (does not need to be specified by each week), based off the value of LGA in the Info Sheet. I would then like to count how many athletes from each council area attended in each week and each term. I have tried many countifs and index/match functions to no avail. Any help would be appreciated. Thank you. Read More
Unable create a new plan in Microsoft planner
My staff Unable create a new plan in Microsoft planner with error message :
Plans and Microsoft 365 Group Establishment have been retired
you are not a member of an existing group. To establish a new Microsoft 365 group. Contact the group’s global or system administrator.
any1 know how to solve this ?pls
My staff Unable create a new plan in Microsoft planner with error message :Plans and Microsoft 365 Group Establishment have been retiredyou are not a member of an existing group. To establish a new Microsoft 365 group. Contact the group’s global or system administrator. any1 know how to solve this ?pls Read More
O365 not updated from MECM
We have one XML for deploying O365.
When i install it on W10/11 machine it download updates from MECM.
But old installations on servers start downloading updates from internet 1-2 month ago.
I find some strange things here Microsoft 365 Apps admin center (office.com)
We use this 3/4 year ago to migrate all devices to Monthly Enterprise Channel.
Then i exclude all devices. Now i check servers are again managed by this …..
When i install O365 to new server all is working fine.
How to tell existing servers to take updates from MECM?
I try full uninstall, reinstall nothing work.
It not problem of MECM deployment, on new servers where O365 never exist its working fine.
How to get out from this terrible Microsoft 365 Apps admin center (office.com) settings?
We have one XML for deploying O365.When i install it on W10/11 machine it download updates from MECM.But old installations on servers start downloading updates from internet 1-2 month ago.I find some strange things here Microsoft 365 Apps admin center (office.com)We use this 3/4 year ago to migrate all devices to Monthly Enterprise Channel.Then i exclude all devices. Now i check servers are again managed by this ….. When i install O365 to new server all is working fine.How to tell existing servers to take updates from MECM?I try full uninstall, reinstall nothing work. It not problem of MECM deployment, on new servers where O365 never exist its working fine. How to get out from this terrible Microsoft 365 Apps admin center (office.com) settings? Read More
Champion Management Platform won’t apply digital badge
We added the champion management platform app to the tenant, and now have a champions team. We’ve got the leaders list working etc, but when we send a user to claim their digital badge, it asks them to ‘accept’ then the next prompt says (see pic below).
The badges are included in the Digital Badge Assets library. Only one owner was able to add the badge when we first started and from then on no-one else can. So we’ve had one success.
No-one knows how to fix this here. We’ve tried adding owners/members, removing them etc.
Has someone got some advice or do you know where I can get support for this?
Thank you 🙂
We added the champion management platform app to the tenant, and now have a champions team. We’ve got the leaders list working etc, but when we send a user to claim their digital badge, it asks them to ‘accept’ then the next prompt says (see pic below). The badges are included in the Digital Badge Assets library. Only one owner was able to add the badge when we first started and from then on no-one else can. So we’ve had one success. No-one knows how to fix this here. We’ve tried adding owners/members, removing them etc.Has someone got some advice or do you know where I can get support for this?Thank you 🙂 Read More
Effectively troubleshoot latency in SQL Server Transactional replication: Part 1
High level transactional replication architecture
The initial stage of transactional replication is initializing the subscriber. Although this can be done via backup, the typical approach generating a snapshot by the Snapshot Agent and storing it in the snapshot folder. It’s C:Program FilesMicrosoft SQL Server<INST>MSSQLReplData by default and configurable. Then, the Distribution Agent transfers the snapshot to the subscriber.
Afterwards, incremental changes in the published database are tracked and replicated to subscriber database. This replication process is done in three phases:
Transactions are marked “for replication” in the transaction log.
The Log Reader Agent reader thread scans through the transaction log using sp_replcmds and looks for transactions that are marked “for replication.” These transactions are then saved to the distribution database by the Log Reader agent writer thread using sp_MSadd_replcmds.
The Distribution Agent reader thread scans through the distribution database using sp_MSget_repl_commands. Then, by using the distribution writer thread, this agent connects to the subscriber to apply those changes to the subscriber using sp_MSupd…, sp_MSins…, and sp_Msdel_* (where the “*” denotes the schema and object name of the published article)..
Figure 1. Transactional Replication architecture that shows the locations of each thread and agent in the case of Remote distributor and pull subscription case
Troubleshooting steps
The following graph shows the process we use to troubleshoot. We troubleshoot by dividing the process into two parts.
Step 1. Get information about “Big Picture”
Before you dive into solving any issue, you need to fully understand the type of environment you have as there might have been changes you are unaware of. An easy way to do that is to run script SQLServer/Script Replication Topology at master · sqlserver-parikh/SQLServer (github.com) which gives output like below.
Step 2. Get tracer tokens
After confirming the environment, insert tracer tokens and identify where we are stuck. Tokens can be inserted via Replication Monitor:
For historical tracer token results, you can run below query in distributor and compare with current results, being the last row the last result:
USE Distribution
SELECT p.publication_id, p.publication, agent_id,
Datediff(s,t.publisher_commit,t.distributor_commit) as ‘Time To Dist (sec)’,
Datediff(s,t.distributor_commit,h.subscriber_commit) as ‘Time To Sub (sec)’
FROM MStracer_tokens t
JOIN MStracer_history h
ON t.tracer_id = h.parent_tracer_id
JOIN MSpublications p
ON p.publication_id = t.publication_id
NOTE –
“distribution” is the default for the distribution database. Be sure to change this if you configured a different name for the distribution database. Additionally, this history is cleaned up any time replication upgrade scripts are executed, there is a change to the distributor configuration, sp_MShistory_cleanup (depending on retention duration specified), or sp_MSdelete_tracer_history is executed (again, depending on parameters used).
If you observe latency or “Pending” status in “Publisher to Distributor”, the issue is with Log Reader agent (refer to Step 3.1). If the latency is seen in “Distributor to Subscriber” as the screenshot above, the issue is with Distribution agent (refer to Step 3.2).
Step 3.1. Troubleshoot latency in Log Reader agent
Check agent history table for any errors by specifically paying attention to comments and error text columns:
USE distribution
SELECT a.name AS agent_name,
CASE [runstatus]
WHEN 1 THEN ‘Start’
WHEN 2 THEN ‘Succeed’
WHEN 3 THEN ‘In progress’
WHEN 4 THEN ‘Idle’
WHEN 5 THEN ‘Retry’
WHEN 6 THEN ‘Fail’
END AS Status
,[start_time]
,h.[time] — The time the message is logged.
,[duration] –The duration, in seconds, of the message session.
,[comments]
,h.[xact_seqno] — The last processed transaction sequence number.
,[delivery_time] — The time first transaction is delivered.
,[delivered_transactions] –The total number of transactions delivered in the session.
,[delivered_commands] — The total number of commands delivered in the session.
,[average_commands] — The average number of commands delivered in the session.
,[delivery_rate] — The average delivered commands per second.
,[delivery_latency] — The latency between the command entering the published database and being entered into the distribution database. In milliseconds.
,[error_id] — The ID of the error in the MSrepl_error system table.
,e.error_text — error text
FROM [distribution].[dbo].[MSlogreader_history] h
JOIN MSlogreader_agents a
ON a.id = h.agent_id
LEFT JOIN MSrepl_errors e
ON e.id = h.error_id
ORDER BY h.time DESC
Furthermore, 5-min interval performance statistics have been added to the history table.
If stats state=1, both reader and writer thread of Log Reader agent are performing as expected. If state=2, writer thread is taking a long time to write changes to distribution database. In this case, you should investigate, writer thread (Step 4.2). State=3 means the reader thread is taking a long time scanning the replicated changes from the transaction log and this thread should be investigated (Step 4.1). For example, below, the writer thread is causing latency as reader thread waited for it for 300 seconds to free queue buffer for new replicated data.
Ref: Statistics for Log Reader and Distribution agents – SQL Server | Microsoft Learn
Sometimes the history table is not enough to resolve latency issues. In this case, you should enable verbose logging for detailed logs (-Output C:TempOUTPUTFILE.txt -Outputverboselevel 3 ). https://learn.microsoft.com/en-US/sql/relational-databases/replication/troubleshoot-tran-repl-errors?view=sql-server-ver16#enable-verbose-logging-on-any-agent
You can investigate the verbose detailed logs for any errors. Particularly pay attention to “Status” logs.
Furthermore, verbose logging provides 5-min interval Log Reader agent statistics as below. Check the Fetch time (reader thread performance) and Write time (writer thread performance) for any latency.
If you cannot find any error logs but you detect latencies in either reader or writer thread, go to Step 4 and check the corresponding thread. For example, in the above example, we detected high latencies in Fetch time compared to Write time. So, the issue is probably with reader thread (refer to Step 4.1 in Part 2).
Step 3.2. Troubleshoot latency in Distribution agent
Check Distribution agent history for any errors by specifically paying attention to comments and error text: USE distribution
SELECT a.name AS agent_name,
CASE [runstatus]
WHEN 1 THEN ‘Start’
WHEN 2 THEN ‘Succeed’
WHEN 3 THEN ‘In progress’
WHEN 4 THEN ‘Idle’
WHEN 5 THEN ‘Retry’
WHEN 6 THEN ‘Fail’
END AS Status
,[start_time]
,h.[time] — The time the message is logged.
,[duration] –The duration, in seconds, of the message session.
,[comments]
,h.[xact_seqno] — The last processed transaction sequence number.
,[current_delivery_rate] — The average number of commands delivered per second since the last history entry.
,[current_delivery_latency] –The latency between the command entering the distribution database and being applied to the Subscriber since the last history entry. In milliseconds.
,[delivered_transactions] –The total number of transactions delivered in the session.
,[delivered_commands] — The total number of commands delivered in the session.
,[average_commands] — The average number of commands delivered in the session.
,[delivery_rate] — The average delivered commands per second.
,[delivery_latency] — The latency between the command entering the distribution database and being applied to the Subscriber. In milliseconds.
,[total_delivered_commands] — The total number of commands delivered since the subscription was created.
,[error_id] — The ID of the error in the MSrepl_error system table.
,e.error_text — error text
FROM MSdistribution_history h
JOIN MSdistribution_agents a
ON a.id = h.agent_id
LEFT JOIN MSrepl_errors e
ON e.id = h.error_id
ORDER BY h.time DESCFurthermore, 5-min interval performance statistics have been added to the history table.
If stats state=1, both reader and writer thread of Log Reader agent are performing as expected. If state=2, writer thread is taking a long time to write changes to distribution database. In this case, you should investigate, writer thread (Step 4.2). State=3 means the reader thread is taking a long time scanning the replicated changes from the transaction log and this thread should be investigated (Step 4.1). For example, below, the writer thread is causing latency as reader thread waited for it for 300 seconds to free queue buffer for new replicated data.
Ref: Statistics for Log Reader and Distribution agents – SQL Server | Microsoft Learn
Sometimes the history table is not enough to resolve latency issues. In this case, you should enable verbose logging for detailed logs (-Output C:TempOUTPUTFILE.txt -Outputverboselevel 3 ). https://learn.microsoft.com/en-US/sql/relational-databases/replication/troubleshoot-tran-repl-errors?view=sql-server-ver16#enable-verbose-logging-on-any-agentYou can investigate the verbose detailed logs for any errors. Particularly pay attention to “Status” logs.
Furthermore, verbose logging provides distribution agent statistics as below. Check the Fetch time (reader thread performance) and Write time (writer thread performance) for any latency.
If you cannot find any error logs but you detect latencies in either reader or writer thread, go to Step 4 and check the corresponding thread. For example, in the above example, we detected high latencies in Reader thread compared to Writer thread. Therefore, the issue is with reader thread (Step 4.3). Let us continue doing the next steps in Part 2!!
Supervisor: Colling Benkler, Sr. EE for SQL Server in Microsoft.
Microsoft Tech Community – Latest Blogs –Read More
Configure Hybrid Modern Authentication in Exchange on-premises
I have error with Hybrid Modern Authentication for OWA and ECP. After I log in to owa/ecp from https://login.microsoftonline.com/ when I access ecp/owa, it’s show error:
Hope to receive reply soon. Thanks a lot
I have error with Hybrid Modern Authentication for OWA and ECP. After I log in to owa/ecp from https://login.microsoftonline.com/ when I access ecp/owa, it’s show error: Hope to receive reply soon. Thanks a lot Read More
What powershell scripts are you using
Need some more ideas and inspiration.
What powershell script are you using on your own computer or server?
Need some more ideas and inspiration.What powershell script are you using on your own computer or server? Read More
Is it possible save a YouTube video on Mac or a Windows 11?
I mainly use Mac computers, and occasionally use Windows 11. Recently, I was looking for a way to easily save YouTube videos on Mac and Win 11 systems. I want to download some educational videos or personal interest-related content so that I can watch them when I don’t have an Internet connection.
There is a lot of information on the Internet, and I am a little confused about which download tool is safe and effective. If you have any reliable YouTube video downloader or Mac and Windows recommendations , or any good downloading tips, please share them. Thank you very much for your help!
I mainly use Mac computers, and occasionally use Windows 11. Recently, I was looking for a way to easily save YouTube videos on Mac and Win 11 systems. I want to download some educational videos or personal interest-related content so that I can watch them when I don’t have an Internet connection. There is a lot of information on the Internet, and I am a little confused about which download tool is safe and effective. If you have any reliable YouTube video downloader or Mac and Windows recommendations , or any good downloading tips, please share them. Thank you very much for your help! Read More
.NET Videos not displaying
https://dotnet.microsoft.com/en-us/learn/videos
This site seems to be broken for more than a week.
You are not gonna fix this?
Any relevant concerns here in this community?
https://dotnet.microsoft.com/en-us/learn/videosThis site seems to be broken for more than a week.You are not gonna fix this?Any relevant concerns here in this community? Read More
Exchange Hybrid Migration underway, but clients experience Outlook authentication loop
Hi,
This is a fairly long story but hoping someone can help troubleshoot what might be going wrong.
Essentially we have a single AD domain, 2 x Exchange 2013 servers in a DAG and everything was running OK. One peculiar feature is that although this AD/Exchange is a single domain, we are trying to split some users out into separate M365 tenancies (and eventually separate AD domains, etc..). As a result, we run multiple EntraID Connect servers synchronizing specific OU’s to the various tenants.
We were advised that in order to split a single AD/Exchange into multiple M365 tenants, we would require an Exchange 2019 server licensed as a Hybrid server for the Hybrid Configuration Wizard to run against. Exchange 2013 on its own could not accomplish this single to multiple configuration.
That was completed, and indeed we have the capability to migrate mailboxes from on-prem to any of the desired 365 tenancies (there are a lot of intricacies to it, but it can work).
The problem we have is that some Outlook users began experiencing Outlook credential prompts over and over again. This seems to have started around the same time as the Exchange 2019 Hybrid server was introduced to the network.
Looking at the connection status on Outlook, we can see that some connections are now going via the new Exchange server – which being licensed for Hybrid only, does not contain any mailboxes or etc.
Initially, I suspected this might be some sort of TLS compatibility issue between the new server and the old servers, and when the new server tries to proxy a user request to an old mailbox server, something is going wrong. I assumed this after seeing a lot of SCHANNEL errors in the event log of the new server. But these do not match up with Outlook authentication failures. At lot of troubleshooting at this point has been focused on enabling the older TLS versions for the system and for .NET on the 2019 Exchange server, but it does not seem to have improved things.
In any case, this is causing major headaches for some users. After some time, the credential prompts will generally stop and the users can work, but often this can take 20+ minutes to settle down.
At this point, would appreciate any advice on where to look for more detailed logging of what is going on with clients when this happens or anything else you might be able to recommend.
Thanks in advance
Hi,This is a fairly long story but hoping someone can help troubleshoot what might be going wrong.Essentially we have a single AD domain, 2 x Exchange 2013 servers in a DAG and everything was running OK. One peculiar feature is that although this AD/Exchange is a single domain, we are trying to split some users out into separate M365 tenancies (and eventually separate AD domains, etc..). As a result, we run multiple EntraID Connect servers synchronizing specific OU’s to the various tenants. We were advised that in order to split a single AD/Exchange into multiple M365 tenants, we would require an Exchange 2019 server licensed as a Hybrid server for the Hybrid Configuration Wizard to run against. Exchange 2013 on its own could not accomplish this single to multiple configuration. That was completed, and indeed we have the capability to migrate mailboxes from on-prem to any of the desired 365 tenancies (there are a lot of intricacies to it, but it can work). The problem we have is that some Outlook users began experiencing Outlook credential prompts over and over again. This seems to have started around the same time as the Exchange 2019 Hybrid server was introduced to the network. Looking at the connection status on Outlook, we can see that some connections are now going via the new Exchange server – which being licensed for Hybrid only, does not contain any mailboxes or etc. Initially, I suspected this might be some sort of TLS compatibility issue between the new server and the old servers, and when the new server tries to proxy a user request to an old mailbox server, something is going wrong. I assumed this after seeing a lot of SCHANNEL errors in the event log of the new server. But these do not match up with Outlook authentication failures. At lot of troubleshooting at this point has been focused on enabling the older TLS versions for the system and for .NET on the 2019 Exchange server, but it does not seem to have improved things. In any case, this is causing major headaches for some users. After some time, the credential prompts will generally stop and the users can work, but often this can take 20+ minutes to settle down. At this point, would appreciate any advice on where to look for more detailed logging of what is going on with clients when this happens or anything else you might be able to recommend. Thanks in advance Read More